{"id":220870,"date":"2025-01-28T09:04:58","date_gmt":"2025-01-28T09:04:58","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/duplicate-and-auto-draft-cleaner\/"},"modified":"2026-03-13T00:23:02","modified_gmt":"2026-03-13T00:23:02","slug":"duplicate-and-auto-draft-cleaner","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/duplicate-and-auto-draft-cleaner\/","author":15066429,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.5.2","stable_tag":"1.5.2","tested":"6.9.4","requires":"5.0","requires_php":"7.0","requires_plugins":null,"header_name":"Duplicate and Auto Draft Cleaner","header_author":"Mainul Kabir Aion","header_description":"Automatically cleans up auto-drafts and detects duplicate posts in WordPress to keep your database clean and efficient.","assets_banners_color":"","last_updated":"2026-03-13 00:23:02","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/mkaion.com\/duplicate-and-auto-draft-cleaner","header_author_uri":"https:\/\/mkaion.com","rating":5,"author_block_rating":0,"active_installs":50,"downloads":2070,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.0":{"tag":"1.4.0","author":"aion11","date":"2025-01-27 13:38:14"},"1.4.1":{"tag":"1.4.1","author":"aion11","date":"2025-01-27 13:45:23"},"1.4.2":{"tag":"1.4.2","author":"aion11","date":"2025-01-28 09:06:21"},"1.5.0":{"tag":"1.5.0","author":"aion11","date":"2026-02-22 09:49:20"},"1.5.1":{"tag":"1.5.1","author":"aion11","date":"2026-03-12 23:30:57"},"1.5.2":{"tag":"1.5.2","author":"aion11","date":"2026-03-13 00:23:02"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3481557,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3481557,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.0","1.4.1","1.4.2","1.5.0","1.5.1","1.5.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3481557,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3481557,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3481557,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Settings screen for configuring draft cleanup, duplicate cleanup, and automation.","2":"Duplicate cleaner screen showing duplicate detection results with filters and manual delete controls.","3":"Draft cleaner screen showing draft filters, bulk selection, and manual cleanup options."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[242796,234534,17806,257643,10218],"plugin_category":[],"plugin_contributors":[159129],"plugin_business_model":[],"class_list":["post-220870","plugin","type-plugin","status-publish","hentry","plugin_tags-auto-draft","plugin_tags-content-cleanup","plugin_tags-database-cleanup","plugin_tags-draft-cleaner","plugin_tags-duplicate-posts","plugin_contributors-aion11","plugin_committers-aion11"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/duplicate-and-auto-draft-cleaner\/assets\/icon-128x128.png?rev=3481557","icon_2x":"https:\/\/ps.w.org\/duplicate-and-auto-draft-cleaner\/assets\/icon-256x256.png?rev=3481557","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/duplicate-and-auto-draft-cleaner\/assets\/screenshot-1.png?rev=3481557","caption":"Settings screen for configuring draft cleanup, duplicate cleanup, and automation."},{"src":"https:\/\/ps.w.org\/duplicate-and-auto-draft-cleaner\/assets\/screenshot-2.png?rev=3481557","caption":"Duplicate cleaner screen showing duplicate detection results with filters and manual delete controls."},{"src":"https:\/\/ps.w.org\/duplicate-and-auto-draft-cleaner\/assets\/screenshot-3.png?rev=3481557","caption":"Draft cleaner screen showing draft filters, bulk selection, and manual cleanup options."}],"raw_content":"<!--section=description-->\n<p>Duplicate and Auto Draft Cleaner helps WordPress site owners keep the database cleaner by removing stale drafts, finding duplicate posts, and giving admins safer cleanup controls before anything is deleted.<\/p>\n\n<h4>Why site owners use it<\/h4>\n\n<p>When drafts pile up and duplicate posts slip into a site, the admin area becomes harder to manage and content cleanup becomes risky. This plugin focuses on a simple workflow:<\/p>\n\n<ul>\n<li>Review drafts and duplicates from one settings screen.<\/li>\n<li>Filter what you want to clean before taking action.<\/li>\n<li>Confirm manual deletions before they run.<\/li>\n<li>Track recent cleanup activity for better transparency.<\/li>\n<li>Automate repeat cleanup tasks on a schedule.<\/li>\n<\/ul>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li>Remove old <code>draft<\/code> and <code>auto-draft<\/code> posts manually or automatically.<\/li>\n<li>Detect duplicate posts and pages based on matching titles within the selected post type and status filters.<\/li>\n<li>Move drafts and duplicate posts to Trash or permanently delete them, depending on your settings.<\/li>\n<li>Review the last 20 cleanup actions in the activity log.<\/li>\n<li>Confirm manual delete actions before cleanup starts.<\/li>\n<li>Run cleanup every 5 minutes, hourly, twice daily, daily, weekly, or monthly.<\/li>\n<li>Limit cleanup by post type and duplicate status filters.<\/li>\n<li>See the last successful automated draft and duplicate cleanup times from the settings screen.<\/li>\n<\/ul>\n\n<h4>What you can manage<\/h4>\n\n<ul>\n<li><p><strong>Draft Cleaner<\/strong>\nClean old drafts by age, choose allowed post types, and decide whether selected drafts go to Trash or are permanently deleted.<\/p><\/li>\n<li><p><strong>Duplicate Cleaner<\/strong>\nReview duplicate content, filter by post type and post status, then move selected duplicates to Trash or delete them permanently.<\/p><\/li>\n<li><p><strong>Automation<\/strong>\nEnable scheduled draft cleanup and scheduled duplicate cleanup separately from the plugin settings page.<\/p><\/li>\n<li><p><strong>Cleanup Activity Log<\/strong>\nSee the latest cleanup actions with date, cleanup type, and number of items deleted.<\/p><\/li>\n<\/ul>\n\n<h4>Safe cleanup workflow<\/h4>\n\n<p>The plugin is designed to reduce accidental data loss:<\/p>\n\n<ul>\n<li>Manual cleanup actions show a confirmation dialog before deletion.<\/li>\n<li>Draft cleanup can be routed to Trash instead of permanent deletion.<\/li>\n<li>Recent cleanup history stays visible in the activity log.<\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<p>For support, bug reports, or feature requests, please visit:<\/p>\n\n<p>https:\/\/mkaion.com\/duplicate-and-auto-draft-cleaner<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Plugin developed by Mainul Kabir Aion.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/duplicate-and-auto-draft-cleaner<\/code> directory, or install the plugin through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the <code>Plugins<\/code> screen in WordPress.<\/li>\n<li>Go to <code>Settings &gt; Auto Draft &amp; Duplicate Cleaner<\/code>.<\/li>\n<li>Configure draft cleanup, duplicate cleanup, and automation settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20delete%20posts%20permanently%3F\"><h3>Will this delete posts permanently?<\/h3><\/dt>\n<dd><p>Drafts and duplicate posts can be moved to Trash or permanently deleted, based on your settings.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20automatic%20cleanup%3F\"><h3>Does the plugin support automatic cleanup?<\/h3><\/dt>\n<dd><p>Yes. You can enable automatic draft cleanup and duplicate cleanup from the settings tab, choose a cleanup interval, and review the last automated run times from the settings screen.<\/p><\/dd>\n<dt id=\"why%20did%20a%20scheduled%20cleanup%20not%20run%20exactly%20after%205%20minutes%3F\"><h3>Why did a scheduled cleanup not run exactly after 5 minutes?<\/h3><\/dt>\n<dd><p>WordPress scheduled tasks depend on WP-Cron, which runs when the site receives traffic unless you use a server-level cron job to trigger <code>wp-cron.php<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20filter%20which%20content%20gets%20checked%3F\"><h3>Can I filter which content gets checked?<\/h3><\/dt>\n<dd><p>Yes. Draft cleanup can be limited by post type and age. Duplicate cleanup can be filtered by post type and post status.<\/p><\/dd>\n<dt id=\"how%20are%20duplicates%20identified%3F\"><h3>How are duplicates identified?<\/h3><\/dt>\n<dd><p>Duplicate posts are identified by matching post titles within the selected post type and post status filters.<\/p><\/dd>\n<dt id=\"where%20are%20the%20plugin%20settings%20stored%3F\"><h3>Where are the plugin settings stored?<\/h3><\/dt>\n<dd><p>The plugin stores its settings and cleanup log in the WordPress options table.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Reissued the release with corrected packaging so WordPress.org release confirmation can process a fresh version.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Added last automated run status for draft and duplicate cleanup on the settings screen.<\/li>\n<li>Added Trash support for duplicate cleanup in both manual and scheduled runs.<\/li>\n<li>Added selected item count feedback to the draft and duplicate cleanup forms.<\/li>\n<li>Clarified duplicate matching rules in the plugin UI and readme.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added a cleanup activity log for the last 20 cleanup runs.<\/li>\n<li>Added a confirmation modal before manual deletions.<\/li>\n<li>Improved manual selection behavior with separate bulk-select controls.<\/li>\n<li>Added capability checks to sensitive admin actions.<\/li>\n<li>Fixed duplicate detection logic to avoid duplicate rows and over-deletion in larger duplicate groups.<\/li>\n<li>Added safe defaults for empty post type and status selections.<\/li>\n<li>Updated draft cleanup scope to include both <code>draft<\/code> and <code>auto-draft<\/code> statuses.<\/li>\n<li>Improved confirmation modal accessibility and clearer Trash vs delete wording.<\/li>\n<li>Fixed cron rescheduling so schedule changes, including every 5 minutes, apply correctly.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Minor fixes.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Fixed script enqueue issues affecting the bulk-select checkbox.<\/li>\n<li>Improved prefixes for functions and options to reduce conflicts.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Fixed the 5-minute cron schedule for draft and duplicate cleanup.<\/li>\n<li>Added a custom 5-minute schedule option.<\/li>\n<li>Updated automation settings to support 5-minute runs.<\/li>\n<\/ul>","raw_excerpt":"Clean auto-drafts and duplicate posts with manual controls, scheduled cleanup, activity logs, and safer delete confirmation.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/220870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=220870"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/aion11"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=220870"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=220870"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=220870"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=220870"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=220870"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=220870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}