Directory / plugin
PostPurge – Bulk Delete Posts
v1.0.18 · by onodev77
Deletes WordPress posts and pages, with optional removal of linked media.
About this plugin
PostPurge – Bulk Delete Posts is designed for reliable cleanup of both small and very large WordPress sites.
Unlike a single bulk database operation, the plugin processes exactly one content item per AJAX request. The administrator can follow every item in a live activity window, pause the operation, resume it later or stop it. Progress is saved for the current administrator.
Main features
- Exact result count before any operation.
- Preview table with a sample of matched content.
- Quick test mode that checks up to 10 matches without changing content.
- Optional media test showing each linked file as deletable, shared/protected or unavailable.
- Real deletion to Trash by default, with optional permanent deletion and an extra confirmation.
- One post per request to reduce timeouts and peak server load.
- Pause, resume and stop controls.
- Automatic recovery of unfinished jobs after reloading the page.
- Filters can be combined using AND logic.
- Posts, pages and registered custom post types.
- Published, draft, pending, private, scheduled and Trash statuses.
- Date range or content older than a selected number of days.
- Categories, tags and registered custom taxonomies by term slug.
- Comment-count range.
- View-count range using the views column registered by the site’s active statistics plugin.
- URL, slug, numeric post ID, title and WordPress keyword search.
- Custom fields with equals, differs, contains, existence and numeric operators.
- Author, featured-image, include-ID and exclude-ID filters.
- Six built-in interface languages: English, Italian, Spanish, French, German and Portuguese.
- Automatic site-language selection with a manual language switcher.
- Optional deletion of media attached exclusively to permanently deleted posts, with shared-media protection.
- Media paths must be verified inside the local WordPress uploads directory; unsafe, non-local and symlinked paths are kept.
- Permanent expandable audit log, paginated in groups of 50 entries.
- Local-only media existence verification with no HTTP checks.
Safe workflow
- Choose the content types and statuses, then add any optional filters.
- Click Preview results and verify the exact count and sample.
- Click Quick test (10), choose whether to verify linked media, and inspect the detailed checks.
- Start the real deletion and keep Move to Trash selected when possible.
- Watch the activity log, or pause and resume later.