Simple Revisions Delete
Add to ListDelete the revisions of your posts individually or all at once, either from the editor or through a bulk action. Works with both the block editor and the classic editor.
What does it do?
Simple Revisions Delete adds a discreet purge control next to the revisions counter of the post you are editing. One click and the revisions of that post are gone.
It helps you keep a clean database by removing unnecessary post revisions. Unlike most similar plugins, it lets you delete the revisions of a specific post rather than wiping every revision of your site at once.
The plugin blends into the WordPress admin, relies exclusively on core functions to delete revisions safely, and adds no settings page: there is nothing to configure.
How does it work?
- In the block editor, a “Purge” button sits in the post status panel of the sidebar, right below the publishing options. It tells you how many revisions the post has and deletes them all in one request.
- In the classic editor, the same control appears in the Publish metabox, and each revision listed in the Revisions metabox gets its own “Delete” button.
- In the posts and pages list, a “Purge revisions” bulk action lets you clean up several posts at once.
Everything happens through the WordPress REST API, so no page reload is needed. Without JavaScript, the classic editor control falls back to a regular form submission and the bulk action keeps working.
What’s new in 2.0?
The block editor integration has been rewritten from scratch. The previous version relied on jQuery and on the internal markup of the editor, which stopped working when Gutenberg 7.1 reorganised its DOM. The purge control is now a genuine editor plugin (PluginPostStatusInfo) reading and writing through a dedicated REST API, so it no longer depends on class names that can change at any release.
The rest of the plugin has been rewritten too: one class per responsibility, no more inline <style> and <script> blocks, destructive actions moved off GET requests, native bulk action filters instead of injected jQuery, and an interface that works with a keyboard and a screen reader.
NOTE: this plugin has no settings page, and needs none.
Post type support
The supported post types are post and page by default. Use the wpsrd_post_types_list filter to add your own or to remove the defaults:
function bweb_wpsrd_add_post_types( $post_types ) {
$post_types[] = 'additional-cpt';
$post_types[] = 'another-cpt';
return $post_types;
}
add_filter( 'wpsrd_post_types_list', 'bweb_wpsrd_add_post_types' );
Use get_post_types() if you want to support every custom post type at once.
Custom user capability
The capability required to delete revisions is delete_post. Override it with the wpsrd_capability filter:
function bweb_wpsrd_capability() {
return 'edit_post';
}
add_filter( 'wpsrd_capability', 'bweb_wpsrd_capability' );
REST API
The plugin registers three routes under the wpsrd/v1 namespace. All of them check that the post type is supported and that the current user holds the capability above for the requested post:
GET /wpsrd/v1/posts/<id>/revisions— returns the number of revisionsDELETE /wpsrd/v1/posts/<id>/revisions— deletes every revision of the postDELETE /wpsrd/v1/posts/<id>/revisions/<revision_id>— deletes a single revision
Each response returns the number of deleted revisions and the number of revisions left.
Languages
The plugin only holds a handful of sentences, easy to translate through its .po and .mo files. Available languages:
Want to add yours? Get in touch
Please ask for help or report bugs if anything goes wrong. It is the best way to make the whole community benefit from it!