[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fjhePpFdVCMKd_xnpITwpkf92RioIuba63RgDATxvQdQ":3,"$f59Y6mQljp8cYvcLZq_IiYINhLYZJT-wm88XYW81kM1g":422,"$fnUxCJUA7FLb4SirOVpVtL8-Z3boygc8YAtmkmU7h57s":426},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":23,"download_link":24,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27,"discovery_status":28,"vulnerabilities":29,"developer":30,"crawl_stats":26,"alternatives":38,"analysis":141,"fingerprints":387},"menupilot","MenuPilot – Preview-First Menu Import & Export","1.0.16","Mayank Majeji","https:\u002F\u002Fprofiles.wordpress.org\u002Fmayankmajeji\u002F","\u003Cp>MenuPilot is a focused menu import and export plugin designed to help you move \u003Cstrong>one menu at a time\u003C\u002Fstrong> between WordPress sites with confidence.\u003C\u002Fp>\n\u003Cp>Unlike basic import tools, MenuPilot shows you exactly what will happen \u003Cstrong>before anything is imported\u003C\u002Fstrong>. You can review the menu structure, see which items match existing content, resolve missing items, and proceed only when everything is clear.\u003C\u002Fp>\n\u003Cp>This makes MenuPilot ideal for moving menus from \u003Cstrong>staging to production\u003C\u002Fstrong>, local development to live sites, or between similar environments — without overwriting existing menus or breaking links silently.\u003C\u002Fp>\n\u003Ch3>What MenuPilot Does\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Exports a single navigation menu as a JSON file\u003C\u002Fli>\n\u003Cli>Imports a menu as a \u003Cstrong>new menu\u003C\u002Fstrong> (never overwrites existing menus)\u003C\u002Fli>\n\u003Cli>Provides a full \u003Cstrong>preview and mapping screen before import\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Intelligently matches menu items to existing content\u003C\u002Fli>\n\u003Cli>Preserves menu hierarchy, order, and metadata\u003C\u002Fli>\n\u003Cli>Replaces source site URLs with destination site URLs automatically\u003C\u002Fli>\n\u003Cli>Creates automatic backups before menu updates and imports\u003C\u002Fli>\n\u003Cli>Logs all import and export actions for accountability\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>What MenuPilot Does Not Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Multisite\u003C\u002Fstrong> — Each subsite is managed independently; cross-site menu copying is not supported\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk export\u002Fimport\u003C\u002Fstrong> — MenuPilot handles one menu at a time by design\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mega menu metadata\u003C\u002Fstrong> — Custom fields added by mega menu plugins are not preserved\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WP-CLI\u003C\u002Fstrong> — No command-line interface; all operations are performed in the admin UI\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Scheduled\u002Fautomated imports\u003C\u002Fstrong> — Imports are triggered manually; no cron or automation support\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Media files\u003C\u002Fstrong> — Images referenced in menu items are not bundled in exports\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Non-standard menu item types\u003C\u002Fstrong> — Only core WordPress types (post, page, taxonomy, custom link) are supported\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Backup & Restore:\n\u003Cul>\n\u003Cli>Automatic backups before every menu update and import\u003C\u002Fli>\n\u003Cli>Manual backup creation from the Menus page\u003C\u002Fli>\n\u003Cli>One-click restore to any previous backup\u003C\u002Fli>\n\u003Cli>Export backups as JSON for portability\u003C\u002Fli>\n\u003Cli>Configurable backup limit (Backup Settings tab)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Import\u002FExport History Logs:\n\u003Cul>\n\u003Cli>Dedicated History page under MenuPilot menu\u003C\u002Fli>\n\u003Cli>Logs who, when, and what for every import\u002Fexport\u003C\u002Fli>\n\u003Cli>Download logs as JSON or plain text\u003C\u002Fli>\n\u003Cli>Clear history with confirmation\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Export individual menus (JSON format)\u003C\u002Fli>\n\u003Cli>Import one menu at a time as a new menu\u003C\u002Fli>\n\u003Cli>Preview screen before import showing:\n\u003Cul>\n\u003Cli>Menu name\u003C\u002Fli>\n\u003Cli>Total menu items\u003C\u002Fli>\n\u003Cli>Source site URL\u003C\u002Fli>\n\u003Cli>Export timestamp\u003C\u002Fli>\n\u003Cli>Matched and unmatched items\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Intelligent auto-matching of menu items using:\n\u003Cul>\n\u003Cli>Post type + slug\u003C\u002Fli>\n\u003Cli>Taxonomy + slug\u003C\u002Fli>\n\u003Cli>Normalized custom links\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Manual mapping override per menu item\u003C\u002Fli>\n\u003Cli>Clear warnings for:\n\u003Cul>\n\u003Cli>Missing pages, posts, or taxonomies\u003C\u002Fli>\n\u003Cli>Items converted to custom links\u003C\u002Fli>\n\u003Cli>Theme location availability\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Automatic home URL replacement during import\u003C\u002Fli>\n\u003Cli>Preserves:\n\u003Cul>\n\u003Cli>Menu hierarchy\u003C\u002Fli>\n\u003Cli>Menu order\u003C\u002Fli>\n\u003Cli>CSS classes\u003C\u002Fli>\n\u003Cli>Link attributes (target, rel)\u003C\u002Fli>\n\u003Cli>Descriptions\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Visual import progress and clear success\u002Ferror messages\u003C\u002Fli>\n\u003Cli>Native WordPress admin UI (no custom frameworks)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Requirements\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>WordPress 5.8 or higher\u003C\u002Fli>\n\u003Cli>PHP 7.4 or higher\u003C\u002Fli>\n\u003Cli>Classic WordPress menu system\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Cp>MenuPilot requires no configuration to start using. Once activated, you can immediately export and import menus.\u003C\u002Fp>\n\u003Cp>Optional: Go to \u003Cstrong>MenuPilot \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings\u003C\u002Fstrong> and open the \u003Cstrong>Backup\u003C\u002Fstrong> tab to configure the maximum number of backups to keep per menu (default: 5).\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Ch3>Backup & Restore\u003C\u002Fh3>\n\u003Col>\n\u003Cli>When editing a menu, scroll to the \u003Cstrong>MenuPilot Backup & Restore\u003C\u002Fstrong> section below the menu form.\u003C\u002Fli>\n\u003Cli>Use the \u003Cstrong>Backup\u003C\u002Fstrong> tab to create manual backups, restore previous versions, or export backups as JSON.\u003C\u002Fli>\n\u003Cli>Use the \u003Cstrong>Import\u003C\u002Fstrong> tab to import a previously exported backup JSON file.\u003C\u002Fli>\n\u003Cli>Backups are also created automatically before every menu save and before every import.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>History Logs\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Navigate to \u003Cstrong>MenuPilot \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> History\u003C\u002Fstrong> in the WordPress admin.\u003C\u002Fli>\n\u003Cli>View all import and export actions with user, timestamp, menu name, and outcome.\u003C\u002Fli>\n\u003Cli>Use the \u003Cstrong>Filter\u003C\u002Fstrong> button to narrow results by date range or user.\u003C\u002Fli>\n\u003Cli>Download logs as JSON or plain text for record-keeping or auditing.\u003C\u002Fli>\n\u003Cli>Use \u003Cstrong>Clear History\u003C\u002Fstrong> to remove all log entries (with confirmation). Export first if you need a backup.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Exporting a Menu\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Navigate to \u003Cstrong>MenuPilot \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Export Menu\u003C\u002Fstrong> in the WordPress admin.\u003C\u002Fli>\n\u003Cli>Select the menu you want to export from the dropdown.\u003C\u002Fli>\n\u003Cli>Click the “Export Menu” button.\u003C\u002Fli>\n\u003Cli>A JSON file will be downloaded to your computer.\u003C\u002Fli>\n\u003Cli>Save this file for importing to another site.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Importing a Menu\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Navigate to \u003Cstrong>MenuPilot \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Import Menu\u003C\u002Fstrong> in the WordPress admin.\u003C\u002Fli>\n\u003Cli>Click “Choose File” and select a previously exported JSON file.\u003C\u002Fli>\n\u003Cli>Click “Upload & Preview” to see what will be imported.\u003C\u002Fli>\n\u003Cli>Review the preview screen:\n\u003Cul>\n\u003Cli>Check menu name (you can edit it)\u003C\u002Fli>\n\u003Cli>Review matched and unmatched items\u003C\u002Fli>\n\u003Cli>Manually map items if needed\u003C\u002Fli>\n\u003Cli>Remove items you don’t want to import\u003C\u002Fli>\n\u003Cli>Optionally assign the menu to a theme location\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Click “Import Menu” to complete the import.\u003C\u002Fli>\n\u003Cli>The menu will be created as a new menu (existing menus are never overwritten).\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Important Notes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>MenuPilot always imports menus as \u003Cstrong>new menus\u003C\u002Fstrong> – it never overwrites existing menus.\u003C\u002Fli>\n\u003Cli>Always review the preview screen before importing to ensure items are matched correctly.\u003C\u002Fli>\n\u003Cli>Unmatched items will be converted to custom links automatically.\u003C\u002Fli>\n\u003Cli>You can manually map items to different content using the “Map To” dropdown in the preview.\u003C\u002Fli>\n\u003C\u002Ful>\n","Safely import and export WordPress navigation menus with a preview-first workflow. Review and map menus before importing.",10,272,0,"2026-03-15T07:38:00.000Z","6.9.4","5.8","7.4",[19,20,21,22],"import-export","menus","migration","navigation","https:\u002F\u002Fgithub.com\u002Fmayankmajeji\u002Fmenupilot","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmenupilot.1.0.16.zip",100,null,"2026-03-15T15:16:48.613Z","no_bundle",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":34,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"mayankmajeji",5,70,95,30,91,"2026-05-20T02:04:17.070Z",[39,60,81,102,123],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":25,"num_ratings":32,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":57,"download_link":58,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":59},"getdave-responsive-navigation-block","Responsive Navigation Block","1.0.10","David Smith","https:\u002F\u002Fprofiles.wordpress.org\u002Fget_dave\u002F","\u003Cp>This Plugin allows you to display and apply alternative styling to different navigation menus based on the screen size using the WordPress Navigation block.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgetdave-responsive-navigation-block\u002F\" rel=\"ugc\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fplayground.wordpress.net\u002F?blueprint-url=https:\u002F\u002Fraw.githubusercontent.com\u002Fgetdave\u002Fresponsive-navigation-block\u002Frefs\u002Fheads\u002Ftrunk\u002F.wordpress-org\u002Fblueprints\u002Fblueprint.json\" rel=\"nofollow ugc\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3> Video Walkthrough\u003C\u002Fh3>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FR5kzAaEsDMg?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Two new Navigation Block (variations) for:\n\u003Cul>\n\u003Cli>Mobile\u003C\u002Fli>\n\u003Cli>Desktop\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Style your menu differently depending on screen size.\u003C\u002Fli>\n\u003Cli>Use a different menu for each screen size.\u003C\u002Fli>\n\u003Cli>Customize the “breakpoint” (where you switch between mobile and desktop).\u003C\u002Fli>\n\u003Cli>Automatically switch editor to “mobile” preview when editing the mobile navigation.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>This Plugin creates two block variations from the Navigation block which will be \u003Cstrong>automatically hidden\u002Fshown at the configured screensize\u003C\u002Fstrong> (breakpoint):\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Navigation (Mobile) – will be displayed only on smaller screen sizes.\u003C\u002Fli>\n\u003Cli>Navigation (Desktop) – will be displayed only on larger screen sizes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This affords the ability to \u003Cstrong>independently style mobile vs desktop navigation\u003C\u002Fstrong> and even allows for \u003Cstrong>completely different menus\u003C\u002Fstrong> to be used.\u003C\u002Fp>\n\u003Cp>The Plugin should be used as follows:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Install and Activate the plugin – two new block variations will be automatically registered for “Mobile” and “Desktop”.\u003C\u002Fli>\n\u003Cli>Go to the Editor and remove any existing Navigation block.\u003C\u002Fli>\n\u003Cli>Add the “Desktop Navigation” block – style and configure the menu for “desktop” as required.\u003C\u002Fli>\n\u003Cli>Add the “Mobile Navigation” block – style and configure the menu for “mobile” as required.\u003C\u002Fli>\n\u003Cli>View the front of your website and resize your browser to see the navigations swap out at the appropriate breakpoint\u002Fscreensize.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Alternatively you can transform the default Navigation block to either \u003Ccode>Mobile\u003C\u002Fcode> or \u003Ccode>Desktop\u003C\u002Fcode> variations via the block’s interface.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>Please see FAQs. If you still have an issue please:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>check \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgetdave\u002Fresponsive-navigation-block\u002Fissues\" rel=\"nofollow ugc\">Github for existing Issue reports\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>(if none) then file a new Issue on Github\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy Statement\u003C\u002Fh3>\n\u003Cp>Responsive Navigation does \u003Cem>not\u003C\u002Fem>:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>use cookies.\u003C\u002Fli>\n\u003Cli>send data to any third party.\u003C\u002Fli>\n\u003Cli>include any third party resources.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Contributing\u003C\u002Fh3>\n\u003Cp>Contributions to this Plugin are welcome. Please fork the Github repository and submit a PR for review.\u003C\u002Fp>\n\u003Ch3>Development Setup\u003C\u002Fh3>\n\u003Cp>This Plugin uses the \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Fblock-editor\u002Freference-guides\u002Fpackages\u002Fpackages-scripts\u002F\" rel=\"nofollow ugc\">@wordpress\u002Fscripts package\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Check out the Github repo into the \u003Ccode>wp-content\u002Fplugins\u003C\u002Fcode> directory of a WordPress installation.\u003C\u002Fli>\n\u003Cli>\u003Ccode>cd\u003C\u002Fcode> into the Plugin’s directory install the dependencies with \u003Ccode>npm i\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Running \u003Ccode>npm start\u003C\u002Fcode> will start the \u003Ccode>@wordpress\u002Fscripts\u003C\u002Fcode> package in watch mode ready to compile the JavaScript on modification.\u003C\u002Fli>\n\u003Cli>PHP files can be edited in the usual manner.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Testing\u003C\u002Fh3>\n\u003Cp>The Plugin has e2e test coverage for the key features courtesey of @wordpress\u002Fscripts and Playwright.\u003C\u002Fp>\n\u003Cp>To run the tests – in your terminal of choice:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>npm run build\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Ccode>npm run wp-env start\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Run the tests: \u003Ccode>npm run test:e2e\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Releasing\u003C\u002Fh3>\n\u003Cp>Releasing the Plugin to the WordPress.org Plugin repo is the prerogative of the Plugin owner (@get_dave). The process is as follows:\u003C\u002Fp>\n\u003Ch4>Test the Plugin\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Commit all changes to \u003Ccode>trunk\u003C\u002Fcode> branch.\u003C\u002Fli>\n\u003Cli>Push changes to \u003Ccode>trunk\u003C\u002Fcode> (only) – \u003Ccode>git push origin trunk\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>In Github:\n\u003Cul>\n\u003Cli>Actions\u003C\u002Fli>\n\u003Cli>Select the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgetdave\u002Fresponsive-navigation-block\u002Factions\u002Fworkflows\u002Fbuild-release-zip.yml\" rel=\"nofollow ugc\">\u003Ccode>Build Release Zip\u003C\u002Fcode> action\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Select the \u003Ccode>Run workflow\u003C\u002Fcode> dropdown and run the workflow to generate a zip file.\u003C\u002Fli>\n\u003Cli>When action completes download the generated Plugin zip artifact.\u003C\u002Fli>\n\u003Cli>Manually install and test the .zip.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Deploy to WP.org\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>When ready to deploy.\u003C\u002Fli>\n\u003Cli>Bump Plugin version and tag release – \u003Ccode>npm run bump-version\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Push trunk and tags – \u003Ccode>git push origin trunk --tags\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Deployment to WP.org will be handled automatically.\u003C\u002Fli>\n\u003C\u002Ful>\n","Complete control over your navigation menus based on screen size including styles and menu items.",1000,10051,"2025-09-27T17:02:00.000Z","6.8.5","6.5","",[54,20,55,22,56],"blocks","mobile","responsive","https:\u002F\u002Fgithub.com\u002Fgetdave\u002Fresponsive-navigation-block","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgetdave-responsive-navigation-block.1.0.10.zip","2026-04-16T10:56:18.058Z",{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":47,"downloaded":68,"rating":69,"num_ratings":70,"last_updated":71,"tested_up_to":72,"requires_at_least":73,"requires_php":17,"tags":74,"homepage":78,"download_link":79,"security_score":80,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":59},"import-export-menu","Import Export Menu","2.0.3","yukyhendiawan","https:\u002F\u002Fprofiles.wordpress.org\u002Fyukyhendiawan\u002F","\u003Cp>The Import Export Menu plugin provides an easy and efficient way to manage your WordPress menus. With this plugin, you can seamlessly import and export your website menus, making it simple to transfer menu structures between different WordPress installations or to back up your menu configurations.\u003C\u002Fp>\n\u003Ch3>Key Features:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Simple Export: Quickly export your menu structures with a single click.\u003C\u002Fli>\n\u003Cli>Easy Import: Effortlessly import your menus back into your WordPress site.\u003C\u002Fli>\n\u003Cli>User-Friendly Interface: Straightforward and intuitive interface for effortless menu management.\u003C\u002Fli>\n\u003Cli>Compatibility: Works with all WordPress themes that support the WordPress menu system.\u003C\u002Fli>\n\u003C\u002Ful>\n","This plugin allows you to export and import menus in WordPress, making it easier to manage and migrate menu structures between sites.",14784,82,7,"2025-04-19T19:01:00.000Z","6.7.5","6.0",[75,76,77,20,22],"export","import","menu","https:\u002F\u002Fyukyhendiawan.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimport-export-menu.2.0.3.zip",92,{"slug":82,"name":83,"version":84,"author":85,"author_profile":86,"description":87,"short_description":88,"active_installs":47,"downloaded":89,"rating":25,"num_ratings":90,"last_updated":91,"tested_up_to":50,"requires_at_least":92,"requires_php":93,"tags":94,"homepage":100,"download_link":101,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":59},"menu-by-user-roles","Menu By User Roles","2.0.4","kahnu044","https:\u002F\u002Fprofiles.wordpress.org\u002Fkahnu044\u002F","\u003Cp>Menu By User Roles is a WordPress plugin that allows you to control the visibility of menu items based on user roles. You can assign specific user roles to each menu item, ensuring that only users with those roles can see and access the corresponding links.\u003C\u002Fp>\n\u003Cp>For more information and usage instructions, visit the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkahnu044\u002Fmenu-by-user-roles\" rel=\"nofollow ugc\">GitHub Repository\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support and inquiries, please \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkahnu044\u002Fmenu-by-user-roles\u002Fissues\" rel=\"nofollow ugc\">open an issue on GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is released under the GPL-2.0+ License. See \u003Ccode>LICENSE\u003C\u002Fcode> for more information.\u003C\u002Fp>\n\u003Ch3>Author\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkahnu044\" rel=\"nofollow ugc\">Kahnu Charan Swain\u003C\u002Fa>\u003C\u002Fp>\n","Menu By User Roles allows you to control the visibility of menu items based on user roles.",8663,3,"2025-10-02T15:41:00.000Z","5.0","7.0",[95,96,97,98,99],"access-control","role-based-menus","site-navigation","tags-menu-visibility","user-roles","https:\u002F\u002Fgithub.com\u002Fkahnu044\u002Fmenu-by-user-roles","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmenu-by-user-roles.2.0.4.zip",{"slug":103,"name":104,"version":105,"author":106,"author_profile":107,"description":108,"short_description":109,"active_installs":110,"downloaded":111,"rating":112,"num_ratings":113,"last_updated":114,"tested_up_to":115,"requires_at_least":116,"requires_php":52,"tags":117,"homepage":120,"download_link":121,"security_score":122,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":59},"auto-subpage-menu","Auto Subpage Menu","1.1.5","jojoee","https:\u002F\u002Fprofiles.wordpress.org\u002Fjojoee\u002F","\u003Cp>By default wordpress menu system, wordpress can only automatically add\u002Fremove \u003Cstrong>top-level page\u003C\u002Fstrong> to\u002Ffrom menus\u003C\u002Fp>\n\u003Cul>\n\u003Cli>When \u003Cstrong>publish\u003C\u002Fstrong> top-level page then add it into menus\u003C\u002Fli>\n\u003Cli>When \u003Cstrong>move\u003C\u002Fstrong> top-level page to trash then remove it from menus\u003C\u002Fli>\n\u003Cli>When \u003Cstrong>restore\u003C\u002Fstrong> top-level page then add it into menus\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>this feature has no effect with \u003Cstrong>subpage\u003C\u002Fstrong> (child page), but \u003Cstrong>Auto Subpage Menu\u003C\u002Fstrong> can\u003C\u002Fp>\n\u003Cul>\n\u003Cli>When \u003Cstrong>publish\u003C\u002Fstrong> subpage (child page) then add it into menus (if its page parent exists in menu)\u003C\u002Fli>\n\u003Cli>When \u003Cstrong>update\u003C\u002Fstrong> subpage (child page) then update menus\u003C\u002Fli>\n\u003Cli>When \u003Cstrong>move\u003C\u002Fstrong> subpage (child page) to trash then remove it from menus\u003C\u002Fli>\n\u003Cli>When \u003Cstrong>restore\u003C\u002Fstrong> subpage (child page) then add it into menus\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Notes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FWordPress_Coding_Standards\" rel=\"nofollow ugc\">WordPress Coding Standards\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fwww.phpdoc.org\u002F\" rel=\"nofollow ugc\">phpDocumentor\u003C\u002Fa> DocBlock Standard\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fauto-subpage-menu\u002F\" rel=\"ugc\">Auto Subpage Menu\u003C\u002Fa> – WordPress Directory Uri\u003C\u002Fli>\n\u003Cli>2 spaces for indent\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjojoee\u002Fauto-subpage-menu\" rel=\"nofollow ugc\">Repository on Github\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>TODO\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>[ ] Implement DocBlock to all\u003C\u002Fli>\n\u003Cli>[ ] Automatically update child-page when its parent have been move, suggested by \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fprofile\u002Fncwebdev\" rel=\"ugc\">ncwebdev\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fmenu-link-doesnt-work-properly-when-moving-a-page\" rel=\"ugc\">topic\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[ ] Add other versions into wordpress download page\u003C\u002Fli>\n\u003C\u002Ful>\n","By default wordpress menu system, wordpress can only automatically add\u002Fremove top-level page to\u002Ffrom menus",800,10069,86,12,"2020-08-04T00:36:00.000Z","5.4.19","3.3.0",[118,119,77,20,22],"admin","child-page","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fauto-subpage-menu\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fauto-subpage-menu.zip",85,{"slug":124,"name":125,"version":126,"author":127,"author_profile":128,"description":129,"short_description":130,"active_installs":131,"downloaded":132,"rating":133,"num_ratings":32,"last_updated":134,"tested_up_to":135,"requires_at_least":136,"requires_php":52,"tags":137,"homepage":139,"download_link":140,"security_score":122,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":59},"better-menu-widget","Better Menu Widget","1.5.1","Tracey Holinka","https:\u002F\u002Fprofiles.wordpress.org\u002Ftraceyholinka\u002F","\u003Cp>\u003Cstrong>This plugin is no longer under active development.\u003C\u002Fstrong> With all the improvements to WordPress the need for this plugin has long passed. It will still work but no improvements will be made.\u003C\u002Fp>\n\u003Cp>A Custom Menu widget that adds a custom url to the widget title and adds a custom css class. The default custom menu CSS class is \u003Ccode>sub-menu\u003C\u002Fcode> and it is applied to the \u003Ccode>\u003Cul>\u003C\u002Fcode> tag. You will need to style the widget using your theme’s stylesheet.\u003C\u002Fp>\n\u003Cp>Based on the core WordPress Custom Menu widget.\u003C\u002Fp>\n\u003Ch4>Options\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Custom title URL\u003C\u002Fli>\n\u003Cli>Custom CSS class\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Plugin’s Official Site\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fbetter-menu-widget\u002F\" rel=\"ugc\">Overview\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTraceyHolinka\u002Fbetter-menu-widget\u002Fblob\u002Fmaster\u002Fchangelog.md\" rel=\"nofollow ugc\">Changelog\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Better Menu Widget makes it easy to customize your menu widgets by adding css styles and a heading link.",600,25622,84,"2019-02-09T23:17:00.000Z","4.9.29","4.5",[20,22,138],"widget","http:\u002F\u002Ftraceyholinka.com\u002Fwordpress-plugins\u002Fbetter-menu-widget\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbetter-menu-widget.1.5.1.zip",{"attackSurface":142,"codeSignals":268,"taintFlows":307,"riskAssessment":381,"analyzedAt":386},{"hooks":143,"ajaxHandlers":224,"restRoutes":265,"shortcodes":266,"cronEvents":267,"entryPointCount":11,"unprotectedCount":13},[144,150,155,160,162,166,171,175,180,184,186,190,194,198,202,206,211,215,219],{"type":145,"name":146,"callback":147,"file":148,"line":149},"action","admin_footer-nav-menus.php","render_backup_section","includes\\admin\\class-backup-manager.php",507,{"type":145,"name":151,"callback":152,"priority":153,"file":148,"line":154},"admin_head","closure",999,730,{"type":145,"name":156,"callback":157,"file":158,"line":159},"admin_init","register_settings","includes\\admin\\class-settings-page.php",54,{"type":145,"name":156,"callback":157,"file":158,"line":161},437,{"type":145,"name":156,"callback":163,"file":164,"line":165},"process_form_submissions","includes\\admin\\class-tools-page.php",38,{"type":145,"name":167,"callback":168,"priority":11,"file":169,"line":170},"menupilot_after_import","on_import_complete","includes\\class-history.php",140,{"type":145,"name":172,"callback":173,"priority":11,"file":169,"line":174},"menupilot_import_failed","on_import_failed",141,{"type":145,"name":176,"callback":177,"file":178,"line":179},"rest_api_init","init_rest_api","includes\\class-init.php",117,{"type":145,"name":181,"callback":182,"file":178,"line":183},"admin_menu","add_admin_menu",148,{"type":145,"name":156,"callback":157,"file":178,"line":185},150,{"type":145,"name":156,"callback":187,"priority":188,"file":178,"line":189},"maybe_backup_before_nav_menu_save",1,151,{"type":145,"name":191,"callback":192,"file":178,"line":193},"load-nav-menus.php","register_meta_box",152,{"type":145,"name":195,"callback":196,"file":178,"line":197},"admin_post_menupilot_download_history","handle_download",154,{"type":145,"name":199,"callback":200,"file":178,"line":201},"admin_post_menupilot_clear_history","handle_clear_history",155,{"type":145,"name":203,"callback":204,"file":178,"line":205},"admin_enqueue_scripts","enqueue_admin_assets",156,{"type":207,"name":208,"callback":209,"file":178,"line":210},"filter","admin_body_class","add_admin_body_class",157,{"type":145,"name":176,"callback":212,"file":213,"line":214},"register_routes","includes\\rest\\class-rest-controller.php",61,{"type":207,"name":216,"callback":217,"file":213,"line":218},"rest_endpoints","restrict_namespace_index",64,{"type":145,"name":220,"callback":221,"file":222,"line":223},"plugins_loaded","menupilot_init","menupilot.php",58,[225,232,235,239,243,246,250,254,257,261],{"action":226,"nopriv":227,"callback":228,"hasNonce":229,"hasCapCheck":229,"file":230,"line":231},"menupilot_export_menu",false,"export_menu",true,"includes\\admin\\class-ajax-handler.php",57,{"action":233,"nopriv":227,"callback":234,"hasNonce":229,"hasCapCheck":229,"file":230,"line":223},"menupilot_preview_import","preview_import",{"action":236,"nopriv":227,"callback":237,"hasNonce":229,"hasCapCheck":229,"file":230,"line":238},"menupilot_import_menu","import_menu",59,{"action":240,"nopriv":227,"callback":241,"hasNonce":229,"hasCapCheck":229,"file":230,"line":242},"menupilot_export_settings","export_settings",60,{"action":244,"nopriv":227,"callback":245,"hasNonce":229,"hasCapCheck":229,"file":230,"line":214},"menupilot_create_backup","create_backup",{"action":247,"nopriv":227,"callback":248,"hasNonce":229,"hasCapCheck":229,"file":230,"line":249},"menupilot_restore_backup","restore_backup",62,{"action":251,"nopriv":227,"callback":252,"hasNonce":229,"hasCapCheck":229,"file":230,"line":253},"menupilot_list_backups","list_backups",63,{"action":255,"nopriv":227,"callback":256,"hasNonce":229,"hasCapCheck":229,"file":230,"line":218},"menupilot_export_backup","export_backup",{"action":258,"nopriv":227,"callback":259,"hasNonce":229,"hasCapCheck":229,"file":230,"line":260},"menupilot_delete_backup","delete_backup",65,{"action":262,"nopriv":227,"callback":263,"hasNonce":229,"hasCapCheck":229,"file":230,"line":264},"menupilot_delete_all_backups","delete_all_backups",66,[],[],[],{"dangerousFunctions":269,"sqlUsage":270,"outputEscaping":290,"fileOperations":304,"externalRequests":13,"nonceChecks":305,"capabilityChecks":287,"bundledLibraries":306},[],{"prepared":271,"raw":272,"locations":273},20,6,[274,277,280,283,285,288],{"file":148,"line":275,"context":276},313,"$wpdb->get_results() with variable interpolation",{"file":148,"line":278,"context":279},426,"$wpdb->query() with variable interpolation",{"file":148,"line":281,"context":282},450,"$wpdb->get_var() with variable interpolation",{"file":169,"line":284,"context":279},322,{"file":286,"line":287,"context":279},"uninstall.php",22,{"file":286,"line":289,"context":279},26,{"escaped":291,"rawEcho":272,"locations":292},260,[293,296,298,300,301,302],{"file":230,"line":294,"context":295},192,"raw output",{"file":148,"line":297,"context":295},616,{"file":299,"line":33,"context":295},"includes\\admin\\class-history-page.php",{"file":158,"line":183,"context":295},{"file":158,"line":210,"context":295},{"file":158,"line":303,"context":295},166,2,14,[],[308,333,343,352,370],{"entryPoint":309,"graph":310,"unsanitizedCount":13,"severity":332},"\u003Cclass-ajax-handler> (includes\\admin\\class-ajax-handler.php:0)",{"nodes":311,"edges":329},[312,317,323,325],{"id":313,"type":314,"label":315,"file":230,"line":316},"n0","source","$_POST",96,{"id":318,"type":319,"label":320,"file":230,"line":321,"wp_function":322},"n1","sink","header() [Header Injection]",186,"header",{"id":324,"type":314,"label":315,"file":230,"line":316},"n2",{"id":326,"type":319,"label":327,"file":230,"line":294,"wp_function":328},"n3","echo() [XSS]","echo",[330,331],{"from":313,"to":318,"sanitized":229},{"from":324,"to":326,"sanitized":229},"low",{"entryPoint":334,"graph":335,"unsanitizedCount":13,"severity":332},"handle_download (includes\\admin\\class-history-page.php:40)",{"nodes":336,"edges":341},[337,340],{"id":313,"type":314,"label":338,"file":299,"line":339},"$_GET",52,{"id":318,"type":319,"label":327,"file":299,"line":33,"wp_function":328},[342],{"from":313,"to":318,"sanitized":229},{"entryPoint":344,"graph":345,"unsanitizedCount":13,"severity":332},"\u003Cclass-history-page> (includes\\admin\\class-history-page.php:0)",{"nodes":346,"edges":350},[347,349],{"id":313,"type":314,"label":348,"file":299,"line":339},"$_GET (x2)",{"id":318,"type":319,"label":327,"file":299,"line":33,"wp_function":328},[351],{"from":313,"to":318,"sanitized":229},{"entryPoint":353,"graph":354,"unsanitizedCount":13,"severity":332},"process_form_submissions (includes\\admin\\class-tools-page.php:46)",{"nodes":355,"edges":367},[356,359,363,364],{"id":313,"type":314,"label":357,"file":164,"line":358},"$_FILES",83,{"id":318,"type":319,"label":360,"file":164,"line":361,"wp_function":362},"file_get_contents() [SSRF\u002FLFI]",123,"file_get_contents",{"id":324,"type":314,"label":357,"file":164,"line":358},{"id":326,"type":319,"label":365,"file":164,"line":183,"wp_function":366},"update_option() [Settings Manipulation]","update_option",[368,369],{"from":313,"to":318,"sanitized":229},{"from":324,"to":326,"sanitized":229},{"entryPoint":371,"graph":372,"unsanitizedCount":13,"severity":332},"\u003Cclass-tools-page> (includes\\admin\\class-tools-page.php:0)",{"nodes":373,"edges":378},[374,375,376,377],{"id":313,"type":314,"label":357,"file":164,"line":358},{"id":318,"type":319,"label":360,"file":164,"line":361,"wp_function":362},{"id":324,"type":314,"label":357,"file":164,"line":358},{"id":326,"type":319,"label":365,"file":164,"line":183,"wp_function":366},[379,380],{"from":313,"to":318,"sanitized":229},{"from":324,"to":326,"sanitized":229},{"summary":382,"deductions":383},"The \"menupilot\" v1.0.20 plugin exhibits a generally strong security posture based on the provided static analysis. The absence of any critical or high-severity taint flows, coupled with a very high percentage of prepared statements and properly escaped output, indicates good development practices in handling data and preventing common vulnerabilities like SQL injection and XSS. The presence of numerous nonce and capability checks on AJAX handlers further strengthens its defense against unauthorized actions. The plugin also has a clean vulnerability history, with no known CVEs, suggesting a mature and well-maintained codebase. \n\nHowever, while the overall picture is positive, a small concern arises from the 10 AJAX handlers. Although the analysis states 0 unprotected handlers, the sheer number of entry points, even if secured, represents a potential area for future misconfigurations or subtle logic flaws that could be exploited. The presence of file operations, although not explicitly flagged as risky, warrants careful consideration in any security audit. \n\nIn conclusion, \"menupilot\" v1.0.20 appears to be a secure plugin with strong defensive coding practices. Its clean vulnerability history and robust implementation of security checks are commendable. The minor area of attention would be the number of AJAX handlers, which, while currently secured, still constitute a significant attack surface that requires ongoing vigilance.",[384],{"reason":385,"points":304},"File operations present","2026-03-16T23:52:33.583Z",{"wat":388,"direct":399},{"assetPaths":389,"generatorPatterns":393,"scriptPaths":394,"versionParams":395},[390,391,392],"\u002Fwp-content\u002Fplugins\u002Fmenupilot\u002Fassets\u002Fcss\u002Fadmin.css","\u002Fwp-content\u002Fplugins\u002Fmenupilot\u002Fassets\u002Fjs\u002Fadmin.js","\u002Fwp-content\u002Fplugins\u002Fmenupilot\u002Fassets\u002Fjs\u002Fadmin-pages.js",[],[391,392],[396,397,398],"menupilot\u002Fassets\u002Fcss\u002Fadmin.css?ver=","menupilot\u002Fassets\u002Fjs\u002Fadmin.js?ver=","menupilot\u002Fassets\u002Fjs\u002Fadmin-pages.js?ver=",{"cssClasses":400,"htmlComments":409,"htmlAttributes":410,"restEndpoints":417,"jsGlobals":419,"shortcodeOutput":421},[401,402,403,404,405,406,407,408],"menupilot-admin","menupilot-admin-pages","menupilot-history-wrapper","menupilot-settings-wrapper","menupilot-tools-wrapper","menupilot-export-wrapper","menupilot-import-wrapper","menupilot-help-wrapper",[],[411,412,413,414,415,416],"data-menupilot-settings","data-menupilot-export","data-menupilot-import","data-menupilot-tools","data-menupilot-history","data-menupilot-help",[418],"\u002Fmenupilot\u002Fv1",[420],"menupilotData",[],{"error":229,"url":423,"statusCode":424,"statusMessage":425,"message":425},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fmenupilot\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":13,"versions":427},[]]