[WordPress] 外掛分享: Maestro: The Inline Admin Menu Editor

首頁外掛目錄 › Maestro: The Inline Admin Menu Editor
WordPress 外掛 Maestro: The Inline Admin Menu Editor 的封面圖片
全新外掛
安裝啟用
尚無評分
29 天前
最後更新
問題解決
WordPress 6.4+ PHP 7.4+ v1.3.1 上架:2026-06-16

外掛標籤

開發者團隊

⬇ 下載最新版 (v1.3.1) 或搜尋安裝

① 下載 ZIP → 後台「外掛 › 安裝外掛 › 上傳外掛」
② 後台搜尋「Maestro: The Inline Admin Menu Editor」→ 直接安裝(推薦)
📦 歷史版本下載

原文外掛簡介

Maestro lets you orchestrate the appearance of the WordPress admin menu.
Instead of a separate settings screen, Maestro turns the admin menu into something you edit in place — right where it lives. Toggle Edit Menu from the admin bar, and the menu becomes editable. Click a menu item to rename it, hide it from selected user roles, or change its icon. Drag submenu items and whole menu groups to reorder them.
Try Maestro right here. Launch a demo in WordPress Playground — it boots a throwaway site with the plugin active in edit mode, plus User Switching and test users (editor, author, contributor, subscriber; password password) so you can try per-role visibility by switching to another user’s account.
What you can do — as a site administrator
Maestro’s enhancements are only activated for logged-in users with an Administrator role. They can:

Rename any top-level or submenu item — just click the label.
Reorder items by dragging (top-level items among themselves, submenu items within their parent), or with the keyboard (Alt+Arrow).
Swap icons on top-level items. The icon picker offers Dashicons and bundled Bootstrap Icons with search. It accepts any of WordPress’s four native icon forms (dashicon, “none”, base64 image data-URI, or an image URL).
Hide items from chosen roles — including administrators. Custom roles registered by other plugins (User Role Editor, Members, etc.) appear automatically.
Reset a single item to its WordPress default, or reset everything at once.

Changes are global — one configuration applies to everyone. Your custom menu configuration is stored as a sparse delta (just the differences) layered over the menu WordPress builds on each load. Nothing is rebuilt or duplicated, so a reset simply removes the delta, and the original menu returns.
Important: visibility is cosmetic, not access control
Hiding a menu item only declutters the menu. The underlying admin page still loads for anyone who knows or types its URL if they’re authorized to see it. That’s because a page’s own registered capability is the true lock. Maestro operates on the menu (presentation), which is a different plane from authorization.
If you need to actually prevent access, pair Maestro with a capability manager like PublishPress Capabilities**. It’s menu-aware, and its Pro tier can block admin pages by URL.
The maestro_capability filter lets such a plugin hand editing rights to a custom capability instead of the default manage_options.
Accessibility and localization
The editor is keyboard-operable end to end — select with Enter/Space, reorder with Alt+Arrow, and every move and save is announced to screen
readers. Modified items carry a non-color indicator with screen-reader text, so their state is never indicated by color alone.
Maestro uses the maestro-menu-editor text domain and 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 override and extend these; native-speaker and WordPress Polyglots reviews are welcome.
Architecture (for developers)

Config — reads/writes/sanitizes a single option (maestro_config) holding only the deltas. Reset = delete the option; the natural menu returns automatically.
Replay — on a late admin_menu pass, applies rename/icon/visibility to the $menu/$submenu globals and reorders submenus. Top-level order uses the core custom_menu_order + menu_order filters. Resilient to missing slugs (orphans are skipped) and new items (appended at the end).
Rest — maestro/v1/config (GET/POST/DELETE), capability-gated, X-WP-Nonce.
The editor JS is driven by a localized model (with DOM ids), not DOM scraping, and diffs against captured pristine defaults so the stored config stays sparse.
Localized editor labels are passed from PHP to JavaScript in maestroData.i18n; the runtime zip includes the bundled POT template and starter catalogs.

Known limits / deferred to v2

Reparenting (moving an item between a top-level position and a submenu) is not included. Top-level items reorder among top-level items, and submenu items reorder within their current parent. Reparenting needs hand-splicing of the globals plus parent_file/submenu_file highlighting fixes — a known minefield, parked deliberately.
Separators are preserved in place but not yet add/move/delete-able; their generated slugs (separator1…) have no stable identity to key against.
Renaming an item drops any core-appended count badge (e.g., pending comments) from that label, since the badge lives inside the title string.
Submenu sort relies on items registering by the late admin_menu pass; a plugin that registers submenus on an unusually late hook may not be captured.

Credits
Bundled Bootstrap Icons are © The Bootstrap Authors, licensed under the MIT License. They are recoloured to WordPress
menu grey and embedded as data-URIs; see bin/generate-bootstrap-icons.mjs.
Support This Plugin
If Maestro saves you time or brings you or your clients the joy of a tidy admin menu, you can support its ongoing maintenance through GitHub Sponsors.

延伸相關外掛

文章
Filter
Apply Filters
Mastodon