{"id":230832,"date":"2025-05-10T17:28:26","date_gmt":"2025-05-10T17:28:26","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ndt-duplicate\/"},"modified":"2025-08-10T07:38:16","modified_gmt":"2025-08-10T07:38:16","slug":"ndt-duplicate","status":"publish","type":"plugin","link":"https:\/\/ceb.wordpress.org\/plugins\/ndt-duplicate\/","author":14046058,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.2","stable_tag":"1.0.2","tested":"6.8.5","requires":"4.9","requires_php":"7.0","requires_plugins":null,"header_name":"NDT Duplicate","header_author":"Tony Nguy\u1ec5n","header_description":"A lightweight plugin to duplicate posts and pages in WordPress.","assets_banners_color":"dddddd","last_updated":"2025-08-10 07:38:16","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/nguyenduytan.com\/1368-ndt-duplicate-wordpress-plugin\/","header_author_uri":"https:\/\/nguyenduytan.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":412,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"nguyenduytan","date":"2025-05-10 17:27:51"},"1.0.2":{"tag":"1.0.2","author":"nguyenduytan","date":"2025-08-10 07:38:16"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3290974,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3291070,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-01.png":{"filename":"screenshot-01.png","revision":3349655,"resolution":"01","location":"plugin"}},"screenshots":{"1":"Admin settings page under <strong>NDT Solutions &gt; NDT Duplicate<\/strong>.","2":"\"About the Author\" section with donation button.","3":"\"Clone\" link in row actions on the Posts or Pages screen."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2814,1794,9055,170,86],"plugin_category":[],"plugin_contributors":[240990],"plugin_business_model":[],"class_list":["post-230832","plugin","type-plugin","status-publish","hentry","plugin_tags-clone","plugin_tags-custom-post-type","plugin_tags-duplicate","plugin_tags-page","plugin_tags-post","plugin_contributors-nguyenduytan","plugin_committers-nguyenduytan"],"banners":{"banner":"https:\/\/ps.w.org\/ndt-duplicate\/assets\/banner-772x250.jpg?rev=3291070","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/ndt-duplicate\/assets\/icon.svg?rev=3290974","icon":"https:\/\/ps.w.org\/ndt-duplicate\/assets\/icon.svg?rev=3290974","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ndt-duplicate\/trunk\/screenshot-01.png?rev=3349655","caption":"Admin settings page under <strong>NDT Solutions &gt; NDT Duplicate<\/strong>."}],"raw_content":"<!--section=description-->\n<p>NDT Duplicate is a simple yet powerful plugin that enables administrators to clone posts, pages, reusable blocks, or custom post types with just one click. It adds a \"Clone\" (or custom text) link to the row actions in the WordPress admin, making content duplication fast and efficient.<\/p>\n\n<p>Key features include:<\/p>\n\n<ul>\n<li>Adds a \"Clone\" link to row actions for selected post types.<\/li>\n<li>Supports duplicating posts, pages, reusable blocks, and custom post types.<\/li>\n<li>Administrators can enable\/disable the plugin and configure settings.<\/li>\n<li>Customizable \"Allowed Types\" (Page, Post, Blocks, Custom Type).<\/li>\n<li>Restrict cloning to specific user roles (e.g., Administrators).<\/li>\n<li>Option to set custom text for the clone link (default: \"Clone\").<\/li>\n<li>Choose whether cloned content is saved as a Draft or Published immediately.<\/li>\n<\/ul>\n\n<p>Developed and maintained by Tony Nguy\u1ec5n, this plugin is designed to streamline content management workflows and will be supported as long as necessary.<\/p>\n\n<h3>Support<\/h3>\n\n<p>For support, please contact me via:\n- Email: admin@ndtan.net\n- Telegram: @nguyenduytan\n- Website: https:\/\/nguyenduytan.com<\/p>\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under GPLv2 or later.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>ndt-duplicate<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to <strong>NDT Solutions &gt; NDT Duplicate<\/strong> in the admin dashboard to configure settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='what%20does%20this%20plugin%20do%3F'><h3>What does this plugin do?<\/h3><\/dt>\n<dd><p>NDT Duplicate adds a \"Clone\" link to the row actions in the WordPress admin, allowing you to duplicate posts, pages, or custom post types with customizable settings.<\/p><\/dd>\n<dt id='how%20do%20i%20configure%20the%20plugin%3F'><h3>How do I configure the plugin?<\/h3><\/dt>\n<dd><p>After activation, go to <strong>NDT Solutions &gt; NDT Duplicate<\/strong> in your WordPress admin dashboard. You can enable\/disable the plugin, select allowed post types, restrict access to specific user roles, set the clone link text, and choose the status of cloned content.<\/p><\/dd>\n<dt id='can%20i%20restrict%20who%20can%20use%20the%20clone%20feature%3F'><h3>Can I restrict who can use the clone feature?<\/h3><\/dt>\n<dd><p>Yes, in the settings under \"Allowed Groups,\" you can select which user roles (e.g., Administrator, Editor) are permitted to see and use the \"Clone\" link.<\/p><\/dd>\n<dt id='what%20happens%20after%20i%20clone%20a%20post%3F'><h3>What happens after I clone a post?<\/h3><\/dt>\n<dd><p>The cloned post will be saved as either a \"Draft\" or \"Published\" based on your selection in the \"After Clone\" setting. The title will have \"(Clone)\" appended, and all content, meta, and taxonomies will be copied.<\/p><\/dd>\n<dt id='why%20don%E2%80%99t%20i%20see%20the%20%22clone%22%20link%3F'><h3>Why don\u2019t I see the \"Clone\" link?<\/h3><\/dt>\n<dd><p>Ensure the plugin is enabled and at least one \"Allowed Type\" is selected. Also, check if your user role is included in \"Allowed Groups\" in the settings.<\/p><\/dd>\n<dt id='does%20it%20work%20with%20custom%20post%20types%3F'><h3>Does it work with custom post types?<\/h3><\/dt>\n<dd><p>Yes, if you enable the \"Custom Type\" option in \"Allowed Types,\" the plugin will add the \"Clone\" link to all custom post types except built-in ones like posts, pages, and reusable blocks.<\/p><\/dd>\n<dt id='how%20can%20i%20support%20the%20developer%3F'><h3>How can I support the developer?<\/h3><\/dt>\n<dd><p>You can support the developer by donating via the PayPal.me link provided in the plugin's admin settings page under \"About the Author\".<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed redirect issue where cloning redirected to incorrect URL (e.g., edit.php#038;action=edit) instead of edit page.<\/li>\n<li>Added Elementor-specific cache clearing for cloned templates.<\/li>\n<li>Excluded sensitive meta keys (_edit_lock, _edit_last) from duplication.<\/li>\n<li>Added debug log for redirect URL to aid troubleshooting.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed clone link not appearing for non-public post types with UI, such as reusable blocks (wp_block).<\/li>\n<li>Optimized post type detection to use 'show_ui' =&gt; true for broader compatibility with custom post types.<\/li>\n<li>Ensured correct redirect for all supported post types after duplication.<\/li>\n<li>Updated \"Tested up to\" to WordPress 6.8.2.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with full functionality:\n\n<ul>\n<li>Enable\/disable plugin toggle.<\/li>\n<li>Configurable allowed post types and user roles.<\/li>\n<li>Customizable clone link text and post status after cloning.<\/li>\n<li>Added \"Clone\" link to row actions in post\/page lists.<\/li>\n<\/ul><\/li>\n<li>Standardized admin menu under NDT Solutions for ecosystem compatibility.<\/li>\n<li>Removed external SweetAlert2 and Google Fonts to comply with WordPress.org guidelines.<\/li>\n<li>Improved security with proper escaping and sanitization.<\/li>\n<li>Added full translation support with .pot and Vietnamese .po files.<\/li>\n<li>Fixed readme.txt header formatting to comply with WordPress.org requirements.<\/li>\n<\/ul>","raw_excerpt":"NDT Duplicate allows you to easily duplicate (clone) WordPress posts, pages, or custom post types with customizable options.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/230832","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=230832"}],"author":[{"embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nguyenduytan"}],"wp:attachment":[{"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=230832"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=230832"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=230832"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=230832"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=230832"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=230832"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}