{"id":297817,"date":"2026-04-17T16:06:31","date_gmt":"2026-04-17T16:06:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/duplicate-menu-for-polylang\/"},"modified":"2026-04-17T16:06:07","modified_gmt":"2026-04-17T16:06:07","slug":"qblocks-menu-sync-for-polylang","status":"publish","type":"plugin","link":"https:\/\/ky.wordpress.org\/plugins\/qblocks-menu-sync-for-polylang\/","author":20849150,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"QBlocks Menu Sync for Polylang","header_author":"Qasim","header_description":"Sync WordPress navigation menus across languages with Polylang. Clone a menu structure to one or more languages with automatic translation of linked pages, posts, and taxonomy terms.","assets_banners_color":"e0cde6","last_updated":"2026-04-17 16:06:07","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/abrarqasim.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":105,"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":"qasim4parray","date":"2026-04-17 16:06:07"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3509115,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3509115,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3509128,"resolution":"1","location":"assets","locale":"","width":3166,"height":2130},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3509128,"resolution":"2","location":"assets","locale":"","width":3166,"height":2130}},"screenshots":{"1":"Duplicate Menu panel on the Menus screen (collapsed)","2":"Duplicate Menu panel expanded with Polylang languages and location options","3":"Success notice after duplicating a menu to two languages"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1865,99,1753,10601,1558],"plugin_category":[43,48],"plugin_contributors":[260470],"plugin_business_model":[],"class_list":["post-297817","plugin","type-plugin","status-publish","hentry","plugin_tags-menu","plugin_tags-multilingual","plugin_tags-navigation","plugin_tags-polylang","plugin_tags-sync","plugin_category-customization","plugin_category-language-tools","plugin_contributors-qasim4parray","plugin_committers-qasim4parray"],"banners":{"banner":"https:\/\/ps.w.org\/qblocks-menu-sync-for-polylang\/assets\/banner-772x250.png?rev=3509115","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/qblocks-menu-sync-for-polylang\/assets\/icon-256x256.png?rev=3509115","icon_2x":"https:\/\/ps.w.org\/qblocks-menu-sync-for-polylang\/assets\/icon-256x256.png?rev=3509115","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/qblocks-menu-sync-for-polylang\/assets\/screenshot-1.png?rev=3509128","caption":"Duplicate Menu panel on the Menus screen (collapsed)"},{"src":"https:\/\/ps.w.org\/qblocks-menu-sync-for-polylang\/assets\/screenshot-2.png?rev=3509128","caption":"Duplicate Menu panel expanded with Polylang languages and location options"}],"raw_content":"<!--section=description-->\n<p><strong>QBlocks Menu Sync for Polylang<\/strong> adds a \"Duplicate Menu\" panel to the WordPress Appearance &gt; Menus screen. Clone any navigation menu \u2014 including all items, hierarchy, and settings \u2014 in seconds, with full Polylang multilingual support.<\/p>\n\n<p>This plugin is not affiliated with Polylang or its developers. \"Polylang\" is a trademark of its respective owner; this plugin simply integrates with the Polylang plugin's public API.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>One-click menu duplication<\/strong> \u2014 duplicate any menu with all items preserved<\/li>\n<li><strong>Polylang integration<\/strong> \u2014 clone menus to one or more target languages in a single action<\/li>\n<li><strong>Smart translation<\/strong> \u2014 automatically links to translated pages, posts, and taxonomy terms when available<\/li>\n<li><strong>Fallback handling<\/strong> \u2014 keeps original linked objects when no translation exists<\/li>\n<li><strong>Custom links<\/strong> \u2014 duplicated as-is with no changes<\/li>\n<li><strong>Theme location assignment<\/strong> \u2014 optionally assign the cloned menu to any registered theme location<\/li>\n<li><strong>Polylang-aware locations<\/strong> \u2014 assigns per-language location slots without affecting other languages<\/li>\n<li><strong>Unique naming<\/strong> \u2014 auto-generates unique menu names to prevent conflicts<\/li>\n<li><strong>Source language badge<\/strong> \u2014 clearly shows which language you are cloning from<\/li>\n<li><strong>Secure<\/strong> \u2014 nonce verification, capability checks, input sanitization, and output escaping throughout<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Go to <strong>Appearance &gt; Menus<\/strong><\/li>\n<li>Select the menu you want to duplicate<\/li>\n<li>Open the <strong>Duplicate Menu<\/strong> panel (above the menu structure)<\/li>\n<li>Choose target languages (if Polylang is active)<\/li>\n<li>Optionally set a custom name and assign theme locations<\/li>\n<li>Click <strong>Duplicate Menu<\/strong><\/li>\n<\/ol>\n\n<h4>Polylang Support<\/h4>\n\n<p>When Polylang is active, the plugin detects the source menu's language and offers all other active languages as targets. For each target language:<\/p>\n\n<ul>\n<li>Pages and posts are automatically linked to their translation<\/li>\n<li>Categories and custom taxonomy terms are linked to their translation<\/li>\n<li>If no translation exists, the original object is kept as a fallback<\/li>\n<li>Custom links are duplicated unchanged<\/li>\n<li>The new menu is assigned the correct Polylang language<\/li>\n<\/ul>\n\n<h4>Without Polylang<\/h4>\n\n<p>The plugin works as a simple menu duplicator \u2014 no language features, just a clean copy of the menu and all its items.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>qblocks-menu-sync-for-polylang<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>Appearance &gt; Menus<\/strong> \u2014 the Duplicate Menu panel appears above the menu structure.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20polylang%3F\"><h3>Does this plugin require Polylang?<\/h3><\/dt>\n<dd><p>No. Without Polylang, it works as a straightforward menu duplicator. Polylang integration is optional and activates automatically when Polylang is detected.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20affiliated%20with%20polylang%3F\"><h3>Is this plugin affiliated with Polylang?<\/h3><\/dt>\n<dd><p>No. This plugin is independently developed and is not affiliated with, sponsored by, or endorsed by Polylang or its developers. It simply uses the public Polylang API.<\/p><\/dd>\n<dt id=\"can%20i%20duplicate%20a%20menu%20to%20multiple%20languages%20at%20once%3F\"><h3>Can I duplicate a menu to multiple languages at once?<\/h3><\/dt>\n<dd><p>Yes. When Polylang is active, you can check multiple target languages and the plugin creates one menu per language in a single action.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20page%20does%20not%20have%20a%20translation%3F\"><h3>What happens if a page does not have a translation?<\/h3><\/dt>\n<dd><p>The menu item keeps the original (source language) page as a fallback. You can update it manually later when the translation is created.<\/p><\/dd>\n<dt id=\"will%20it%20overwrite%20my%20existing%20menus%3F\"><h3>Will it overwrite my existing menus?<\/h3><\/dt>\n<dd><p>No. The plugin always creates new menus with unique names. It never modifies or deletes existing menus.<\/p><\/dd>\n<dt id=\"can%20i%20assign%20the%20duplicated%20menu%20to%20a%20theme%20location%3F\"><h3>Can I assign the duplicated menu to a theme location?<\/h3><\/dt>\n<dd><p>Yes. The Duplicate Menu panel shows all registered theme locations as checkboxes. In Polylang mode, only the target language's location slot is affected \u2014 other languages remain untouched.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Menu duplication with full item hierarchy preservation<\/li>\n<li>Polylang integration with automatic object translation<\/li>\n<li>Multi-language cloning in a single action<\/li>\n<li>Theme location assignment with Polylang-aware per-language slots<\/li>\n<li>Source language badge display<\/li>\n<li>Confirmation dialog and double-submit protection<\/li>\n<\/ul>","raw_excerpt":"Sync WordPress navigation menus across languages with Polylang. One click duplicates a menu and auto-links translated pages, posts, and terms.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/297817","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=297817"}],"author":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/qasim4parray"}],"wp:attachment":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=297817"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=297817"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=297817"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=297817"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=297817"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=297817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}