[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fO02mZgarewY0HbJ-7TTJeqW8u1LLFCeNKQAODQSZKbM":3},{"slug":4,"display_name":5,"profile_url":6,"plugin_count":7,"total_installs":8,"avg_security_score":9,"avg_patch_time_days":10,"trust_score":11,"computed_at":12,"plugins":13},"takahironishii","Takahiro Nishii","https:\u002F\u002Fprofiles.wordpress.org\u002Ftakahironishii\u002F",1,0,100,30,94,"2026-08-29T10:26:54.108Z",[14],{"slug":15,"name":16,"version":17,"author":5,"author_profile":6,"description":18,"short_description":19,"active_installs":8,"downloaded":20,"rating":8,"num_ratings":8,"last_updated":21,"tested_up_to":22,"requires_at_least":23,"requires_php":24,"tags":25,"homepage":31,"download_link":32,"security_score":9,"vuln_count":8,"unpatched_count":8,"last_vuln_date":33,"fetched_at":34},"takahiro-revision-cleanup","Takahiro Revision Cleanup","1.3.0","\u003Cp>WordPress saves a full copy of a post every time you update it. Over months or years of editing, these copies — revisions — pile up quietly in the \u003Ccode>wp_posts\u003C\u002Fcode> table. You never see them in the post list, but they still take up database rows, slow down backups, and add weight to every migration.\u003C\u002Fp>\n\u003Cp>Takahiro Revision Cleanup shows you exactly how many revisions exist, lets you preview what will be removed before you commit, and deletes them safely through WordPress’s own APIs. It’s a modern, actively maintained replacement for older tools such as Better Delete Revision, which was removed from the WordPress.org directory in 2022 for security issues.\u003C\u002Fp>\n\u003Ch4>See before you delete\u003C\u002Fh4>\n\u003Cp>The dashboard shows the total revision count, an estimated storage size, and a lifetime counter of everything you’ve removed so far. A paginated preview list lets you check exactly which revisions belong to which posts before running a deletion. Nothing is hidden, and published content never appears in the list.\u003C\u002Fp>\n\u003Ch4>Delete by post type, not just “everything”\u003C\u002Fh4>\n\u003Cp>Some sites only want to clean up old blog posts and leave pages untouched. Others need to target a specific custom post type. This plugin breaks revisions down by post type, including orphaned revisions whose parent post no longer exists, and lets you delete each group independently or clear everything in one pass.\u003C\u002Fp>\n\u003Ch4>Built for large sites\u003C\u002Fh4>\n\u003Cp>Deleting tens of thousands of revisions in a single PHP request is how most cleanup tools time out. Version 1.3.0 adds one-click continuous deletion: press the button once, and the plugin works through revisions in batches of 200 via AJAX, with a live progress bar so you can watch it happen. If JavaScript is unavailable, it falls back to standard form submissions automatically.\u003C\u002Fp>\n\u003Ch4>Database housekeeping, without touching the whole database\u003C\u002Fh4>\n\u003Cp>After a large deletion, \u003Ccode>wp_posts\u003C\u002Fcode> and \u003Ccode>wp_postmeta\u003C\u002Fcode> can be left with unused space. The plugin runs \u003Ccode>CHECK TABLE\u003C\u002Fcode> and \u003Ccode>OPTIMIZE TABLE\u003C\u002Fcode> on just those two tables, not a blanket optimization of your entire database.\u003C\u002Fp>\n\u003Ch4>Cleans up correctly, not just quickly\u003C\u002Fh4>\n\u003Cp>Deletion goes through WordPress’s native \u003Ccode>wp_delete_post_revision()\u003C\u002Fcode> function, so associated post meta and term relationships are cleaned up the way WordPress expects, rather than through a raw SQL \u003Ccode>DELETE\u003C\u002Fcode> that can leave orphaned data behind. A compatibility fix is also included for a known NextGEN Gallery issue during batch deletes.\u003C\u002Fp>\n\u003Ch4>Security\u003C\u002Fh4>\n\u003Cp>Revision cleanup is a destructive, irreversible database operation, so this was built with that in mind from the start:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>WordPress nonces plus a separate per-user form token on every destructive action\u003C\u002Fli>\n\u003Cli>Capability checks (\u003Ccode>manage_options\u003C\u002Fcode> by default, filterable via \u003Ccode>tnrc_required_capability\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Rate limiting: a 30-second cooldown between destructive operations per user\u003C\u002Fli>\n\u003Cli>A strict allowlist restricting CHECK\u002FOPTIMIZE to \u003Ccode>wp_posts\u003C\u002Fcode> and \u003Ccode>wp_postmeta\u003C\u002Fcode> only\u003C\u002Fli>\n\u003Cli>A 2,000-revision cap per request, with a warning if more remain\u003C\u002Fli>\n\u003Cli>Prepared SQL statements and escaped output throughout\u003C\u002Fli>\n\u003Cli>An audit hook (\u003Ccode>tnrc_security_event\u003C\u002Fcode>) for logging or monitoring integrations\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>What it doesn’t do\u003C\u002Fh4>\n\u003Cp>This plugin focuses on one job: reviewing and deleting revisions safely. It doesn’t include page caching, image optimization, or general cleanup of transients, spam comments, or orphaned options. If you want a single plugin that handles everything, a broader optimization suite may suit you better. If you want to see what’s in your revisions before removing them, and trust that the removal won’t touch anything else, that’s what this plugin is for.\u003C\u002Fp>\n","Manage and delete WordPress post revisions from a simple admin screen.",171,"2026-07-14T07:47:00.000Z","7.0.2","5.9","7.4",[26,27,28,29,30],"cleanup","database","delete-revision","performance","revision","https:\u002F\u002Ftakahiro-nishii.com\u002Fportfolio\u002Fwordpress-plugins\u002Ftakahiro-revision-cleanup\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftakahiro-revision-cleanup.1.3.0.zip",null,"2026-07-22T17:31:50.256Z"]