Why you should delete projects from the front-end

A Little Background

For those well-acquainted with WordPress, it’s common knowledge that when you delete a category, any posts within that category typically remain. This behaviour is intentional by design.

However, when working within the wProject context, this can lead to a specific challenge or, from another perspective, a minor inconvenience.

In essence, a project in wProject is really a custom category, and a task is really post of a custom post type. So, when you have a project containing a multitude of tasks, you’re essentially dealing with a custom category containing numerous posts.

The issue arises when you delete a project from the WordPress backend in a manner similar to deleting a category. All the tasks that were previously in that project still exist, but they now become orphaned. In other words, the tasks that were once associated with the deleted project no longer belong to any project, leading to a gradual build-up of stray tasks that may one day eventually impact system performance.

A side note: To check for orphaned tasks, you can navigate to the Tasks section in the backend and inspect the Project column for any labelled as [Orphan].

Expectations versus Reality

In reality, the expectation when deleting a project would be that all tasks within it should also be deleted. However, as demonstrated above, this is not how WordPress behaves. Fortunately, wProject offers a solution – deleting a project and all its associated tasks can be achieved from the front-end. To delete a project from the front-end, simply visit the project page and click on Delete in the right pane.

How to Enable Back-End Project Deletion

To allow the deletion of projects in the back-end, navigate to wProject -> Other Settings and enable the ‘Allow deleting projects from the back-end interface’ option.

How to Tidy Up After Deleting a Project in the Back-End

wProject includes a maintenance function that takes care of orphaned tasks. To use this feature, go to wProject -> Maintenance, and enable the Clean-up database option. Click the Save Settings button to initiate the maintenance process.