Toggle “Edit Menu” from the admin bar and the admin menu becomes editable in
place:
Changes are global — one configuration applies to everyone — and are stored
as a sparse delta layered over the menu WordPress builds each load.
Hiding a menu item only declutters the menu. The underlying admin page still
loads for anyone who knows or types its URL, because a page’s own registered
capability is the true lock. This plugin operates on the menu (presentation),
which is a different plane from authorization.
If you need to actually prevent access, pair this with a capability manager:
The maestro_capability filter lets such a plugin hand editing rights to a custom
capability instead of the default manage_options.
Maestro uses the maestro-menu-editor text domain. PHP strings use
WordPress translation helpers, and editor labels are passed to JavaScript in a
localized payload so the UI can be translated. The plugin ships a translation
template plus starter language packs for Spanish (es_ES), German (de_DE),
Japanese (ja), French (fr_FR), Portuguese (Brazil) (pt_BR), and Italian
(it_IT). WordPress.org language packs can still override and extend the
bundled catalogs; native-speaker and WordPress Polyglots review is welcome.
After activation, choose Edit Menu from the admin bar. The admin menu stays
expanded while editing so items are visible and stable. Choose Exit Menu
Editing when done; any pending autosave is completed before the page reloads.
Click a top-level or submenu item to select it. Keyboard users can focus a menu
item and press Enter or Space. The shared controls panel opens for the selected
item.
Edit the selected item’s label in the controls panel. Press Enter to commit the
label or Escape to restore the previous label. Changes autosave after a short
pause.
Drag menu rows to reorder them. Top-level items reorder among top-level items;
submenu items reorder within their current parent. Moving items between
top-level and submenu positions is deferred to a later version.
Select a top-level item and open the icon picker. Choose a Dashicon, bundled
Bootstrap Icon, “No icon”, or a valid WordPress icon value. Submenu items do not
have separate WordPress admin menu icons, so the icon control appears only for
top-level items.
Open the visibility control and check the roles that should not see the selected
item in the admin menu. These settings are global for each role and are cosmetic
only; they do not block the underlying page URL.
Use Reset this item to remove one item’s customizations, or Reset all to
delete the saved configuration and return to the menu generated by WordPress and
active plugins.
Config — reads/writes/sanitizes a single option (maestro_config) holding onlyReplay — on a late admin_menu pass, applies rename/icon/visibility to the$submenu globals and reorders submenus. Top-level order uses thecustom_menu_order + menu_order filters. Resilient to missing slugsRest — maestro/v1/config (GET/POST/DELETE), capability-gated, X-WP-Nonce.maestroData.i18n;.wordpress-org/icon.svg, icon-128x128.png, icon-256x256.png,banner-1544x500.png, and screenshot-1.png throughparent_file/submenu_fileseparator1…) have no stable identity to key against.admin_menu pass; aBundled Bootstrap Icons are © The Bootstrap
Authors, licensed under the MIT License. They are recoloured to the WordPress
menu grey and embedded as data-URIs; see bin/generate-bootstrap-icons.mjs.