Sign inBlogAboutSupportContact
Content

Trash posts, pages, and products without touching wp-admin

Send a post, page, or WooCommerce product straight to the trash from the navigator. Nothing is permanently deleted. Everything is reversible. Three commands, zero risk of losing content by accident.

4 min read May 2026 delete post

Deleting content should take three seconds, not thirty clicks

You need to clear out a set of stale draft posts, retire a handful of discontinued products, or pull down pages from an old campaign. You know exactly which IDs you want gone. But WordPress makes you go to the list view, filter, check boxes, click Trash, confirm, repeat for every post type. By the time you finish, you've clicked forty times and visited four different admin screens.

That friction turns a five-minute cleanup into something you put off for weeks. The drafts pile up, the discontinued products stay visible in internal searches, and the old pages keep collecting accidental traffic because no one wanted to do the clicking.

What most people do

Click through the list view Posts, then Pages, then Products: three separate screens, three sets of checkboxes, three confirmation clicks. Manageable for two items, tedious for twenty, painful for fifty.
Write a WP-CLI command wp post delete works, but it defaults to permanent deletion. You have to remember the --force flag distinction, have SSH access, and type the full command every time.
Run a direct SQL query Setting post_status to trash in the database works until you forget a related meta row, break an index, or trash the wrong ID because the query had a typo.

A better way: trash anything from the navigator

TrueCommander gives you three focused commands: delete post, delete page, and delete product. Each one moves the item to the WordPress trash in a single step. You know the ID, you type the command, it's done. The content sits safely in the trash until you choose to empty it or restore it, exactly as if you had clicked Trash in wp-admin.

TrueCommander
Product moved to trash
Reversible from wp-admin > Products > Trash
Product #847trashed
Restore any time from the Products trash screen
WooCommerce required for delete productactive

Nothing is ever permanently deleted. All three commands send content to the WordPress trash, the same as clicking the Trash link in wp-admin. You can restore anything from the trash screen at any time. Content is only removed for good when you choose to empty the trash manually. Running the same command on an already-trashed item is safe: the command returns already_trashed and stops there.

What each command does

Three commands, one job: move content to the trash safely, reversibly, and without opening a single list view.

CommandWhat it does
delete postMoves a post to the WordPress trash. Only works on the post post type. Reversible from wp-admin > Posts > Trash. Idempotent: if the post is already trashed it returns already_trashed.
delete pageMoves a page to the WordPress trash. Only works on the page post type. Reversible from wp-admin > Pages > Trash. Idempotent: same already_trashed behavior.
delete productMoves a WooCommerce product to the trash. Requires WooCommerce. Reversible from wp-admin > Products > Trash. Variable product variations stay in the database but become unreachable while the parent is trashed.

How it works

1
Find the ID of the content you want to trash Check the URL in wp-admin (post.php?post=123) or use filter posts and filter products to pull IDs by status, date, or category straight from the navigator.
2
Run the matching delete command with -id Type tp delete post -id=123, tp delete page -id=456, or tp delete product -id=789. The command checks the post type, confirms the item exists, and moves it to trash.
3
Restore or permanently delete from the trash screen Trashed items behave exactly like items you trashed through wp-admin. Restore in one click, or empty the trash to remove them for good when you're sure.
DetailValue
Command namesdelete post, delete page, delete product
Required parameter-id: the numeric ID of the item to trash
Post type enforcementEach command only works on its own post type. Passing a page ID to delete post will not trash the page.
IdempotencyRunning a command on an already-trashed item returns already_trashed and makes no further changes
Variable productsWordPress trash does not cascade to child posts. Variations of a trashed variable product stay published in the database but become unreachable. Restoring the parent makes everything visible again. Permanently emptying the trash removes the variations.
Can be used in

Real example

You ran a spring campaign last year. It generated twelve landing pages, all now stale, all still indexed. Your SEO tool is flagging them as thin content. The post IDs are in a spreadsheet the content team shared.

You open the navigator and run tp delete page -id=1201, then tp delete page -id=1202, working down the list. Each one confirms with "moved to trash." You also have four discontinued jacket products that WooCommerce keeps surfacing in internal search: tp delete product -id=847, tp delete product -id=848, tp delete product -id=851, tp delete product -id=862. Done in under two minutes.

A week later the client decides one landing page should stay. You go to wp-admin > Pages > Trash, restore it, and it's live again. Nothing was permanently lost.

Goes further with TrueCommander

Ready?

Clear the clutter without the risk.

One of 91 commands. All included with every license.

Cookies. The short version.

Essential cookies keep the cart and theme working. Analytics only fire if you say yes. Read our policy.