Gab - Classic Menu Migrator
Import & Export WordPress Menus between websites - for Classic Themes.
by Gabriele Iacovone · github.com/gabriele-iacovone/gab-classic-menu-migrator
★ 0stars
0forks
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/gabriele-iacovone/gab-classic-menu-migrator/archive/refs/heads/main.zipA lightweight and smart WordPress plugin to export and import menus between websites. Specifically designed for Classic Themes, it ensures that your menu structure remains intact during migrations.
🚀 Key Features
- Smart Mapping: Automatically attempts to reconnect menu items to existing Pages, Posts, and Categories on the new site using slugs.
- Hybrid Logic: If a linked page doesn't exist on the target site, it converts the item into a Relative Custom Link (e.g.,
/contact-us) to prevent broken absolute URLs. - Hard-Relative URLs: Forces relative paths for all custom links, making the menu perfectly portable between Local, Staging, and Live environments.
- Clean Export: Generates a clean, readable
.jsonfile named after your menu. - No Dependencies: Works out of the box with native WordPress functions.
🛠 Installation
- Download or clone this repository into your
/wp-content/plugins/directory. - Activate the plugin through the 'Plugins' menu in WordPress.
- Go to Tools > Classic Menu Migrator to start migrating.
📖 How to Use
Exporting
- Select the menu you want to export from the dropdown list.
- Click Download JSON.
- A file named
menu-migrator-[menu-name].jsonwill be saved to your computer.
Importing
- Go to the target WordPress site where the plugin is installed.
- Upload the JSON file in the Import section.
- Click Import Menu.
- Your new menu will be created as
[Menu Name] - Imported [Time].
⚠️ Requirements
- WordPress 5.0+
- Classic Theme (or a Block Theme where you intend to use Classic Menus).
- PHP 7.4+
📄 License
This project is licensed under the GPLv2 or later.
Created with ❤️ by Gabriele Iacovone