{"id":246428,"date":"2025-08-30T08:16:40","date_gmt":"2025-08-30T08:16:40","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/duplicate-post-manager\/"},"modified":"2025-08-30T08:35:05","modified_gmt":"2025-08-30T08:35:05","slug":"kandeshop-duplicate-post-manager","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/kandeshop-duplicate-post-manager\/","author":14453657,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3","stable_tag":"1.3","tested":"6.8.5","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Kandeshop Duplicate Post Manager","header_author":"Darren Kandekore","header_description":"Find and manage duplicate posts by title or slug. Allows deletion and 301 redirection with .htaccess code generation.","assets_banners_color":"","last_updated":"2025-08-30 08:35:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":226,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation"],"tags":{"1.0.0":{"tag":"1.0.0","author":"Kandeshop","date":"2025-08-30 08:15:41"},"1.3":{"tag":"1.3","author":"Kandeshop","date":"2025-08-30 08:35:05"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.3"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[932,10218,1329,727,186],"plugin_category":[55],"plugin_contributors":[225980],"plugin_business_model":[],"class_list":["post-246428","plugin","type-plugin","status-publish","hentry","plugin_tags-932","plugin_tags-duplicate-posts","plugin_tags-htaccess","plugin_tags-redirect","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-kandeshop","plugin_committers-kandeshop"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/kandeshop-duplicate-post-manager.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Manage and clean up duplicate WordPress posts with ease. Delete duplicates in bulk, assign 301 redirects, and generate <code>.htaccess<\/code> rules \u2014 all from one simple interface.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Detect duplicate posts by <strong>title<\/strong> and <strong>slug<\/strong><\/li>\n<li>Display all duplicates in a table (with checkboxes)<\/li>\n<li>Per-post redirect options:<\/li>\n<li>Choose from other duplicates in a dropdown<\/li>\n<li>Enter a custom redirect URL manually<\/li>\n<li>Validate redirect targets before deleting<\/li>\n<li>Redirect deleted posts using 301 rules<\/li>\n<li>Save posts to <strong>trash<\/strong>, not permanent delete<\/li>\n<li>Generate <code>.htaccess<\/code> rules for all redirects<\/li>\n<li>Copy\/paste or export redirects as needed<\/li>\n<\/ul>\n\n<h3>How to Use<\/h3>\n\n<ol>\n<li>Go to <strong>Tools &gt; Duplicate Post Manager<\/strong><\/li>\n<li>Click <strong>Scan for Duplicates<\/strong><\/li>\n<li>Review the table of duplicate posts<\/li>\n<li>For each post:\n\n<ul>\n<li>Check the box to delete it<\/li>\n<li>Choose a redirect target (dropdown or custom URL)<\/li>\n<\/ul><\/li>\n<li>Click <strong>Delete Selected &amp; Redirect<\/strong><\/li>\n<li>Scroll down to copy or export your <code>.htaccess<\/code> redirect rules<\/li>\n<\/ol>\n\n<h3>Redirect Format<\/h3>\n\n<p>The plugin generates Apache <code>.htaccess<\/code> rules like:<\/p>\n\n<p>Redirect 301 \/old-slug \/new-slug\nRedirect 301 \/another-old \/new-target<\/p>\n\n<ul>\n<li>All redirects use <strong>relative paths<\/strong> for portability.<\/li>\n<li>Only valid (non-404) redirects are saved.<\/li>\n<\/ul>\n\n<h3>Why Use It?<\/h3>\n\n<ul>\n<li>Prevent SEO penalties from duplicate content<\/li>\n<li>Control user redirection after cleanup<\/li>\n<li>Maintain your site's authority by preserving link equity<\/li>\n<li>Clean and update old auto-imported posts or legacy content<\/li>\n<\/ul>\n\n<h3>Technical Notes<\/h3>\n\n<ul>\n<li>Uses WordPress core functions (<code>get_posts<\/code>, <code>get_permalink<\/code>, <code>wp_trash_post<\/code>)<\/li>\n<li>Compatible with Classic Editor and Block Editor (Gutenberg)<\/li>\n<li>Does not delete posts permanently<\/li>\n<li>Nonce-verified form for security<\/li>\n<\/ul>\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under the <a href=\"https:\/\/www.gnu.org\/licenses\/gpl-2.0.html\">GPLv2<\/a> or later.<\/p>\n\n<h3>Coming Soon (Ideas)<\/h3>\n\n<ul>\n<li>Export <code>.htaccess<\/code> as a downloadable file<\/li>\n<li>Custom post type support<\/li>\n<li>Integration with Redirection plugins<\/li>\n<li>Inline AJAX validation of manual URLs<\/li>\n<\/ul>\n\n<h3>Author<\/h3>\n\n<p><a href=\"https:\/\/darrenk.uk\/\">Darren Kandekore<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Download and extract the plugin<\/li>\n<li>Upload the folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate via <strong>Plugins &gt; Installed Plugins<\/strong><\/li>\n<li>Navigate to <strong>Tools &gt; Duplicate Post Manager<\/strong><\/li>\n<\/ol>","raw_excerpt":"Manage and clean up duplicate WordPress posts with ease. Delete duplicates, assign 301 redirects, and generate .htaccess rules.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/246428","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=246428"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kandeshop"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=246428"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=246428"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=246428"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=246428"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=246428"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=246428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}