Title: Maestro: The Inline Admin Menu Editor
Author: Dan Knauss
Published: <strong>2026 年 6 月 17 日</strong>
Last modified: 2026 年 6 月 22 日

---

搜索插件

![](https://ps.w.org/maestro-menu-editor/assets/banner-772x250.png?rev=3582348)

![](https://ps.w.org/maestro-menu-editor/assets/icon.svg?rev=3575264)

# Maestro: The Inline Admin Menu Editor

 作者：[Dan Knauss](https://profiles.wordpress.org/dpknauss/)

[下载](https://downloads.wordpress.org/plugin/maestro-menu-editor.1.2.0.zip)

 * [详情](https://cn.wordpress.org/plugins/maestro-menu-editor/#description)
 * [评价](https://cn.wordpress.org/plugins/maestro-menu-editor/#reviews)
 *  [安装](https://cn.wordpress.org/plugins/maestro-menu-editor/#installation)
 * [开发进展](https://cn.wordpress.org/plugins/maestro-menu-editor/#developers)

 [支持](https://wordpress.org/support/plugin/maestro-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 disposable demo in [WordPress Playground](https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/dknauss/Maestro/main/playground/blueprint-hosted.json)—
it boots a site with Maestro active, 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](https://wordpress.org/plugins/user-role-editor/),
   [Members](https://wordpress.org/plugins/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](https://wordpress.org/plugins/capability-manager-enhanced/)**.
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](https://icons.getbootstrap.com/) 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](https://github.com/sponsors/dknauss).

## 屏幕截图

[⌊The inline editor — select any admin-menu item to edit it in place using the icon-
only unified toolbar and shared controls panel (rename, icon, visibility, reset).⌉⌊
The inline editor — select any admin-menu item to edit it in place using the icon-
only unified toolbar and shared controls panel (rename, icon, visibility, reset)
.⌉[

The inline editor — select any admin-menu item to edit it in place using the icon-
only unified toolbar and shared controls panel (rename, icon, visibility, reset).

[⌊The icon picker: searchable Dashicons and bundled Bootstrap Icons tabs for swapping
a top-level admin menu icon.⌉⌊The icon picker: searchable Dashicons and bundled 
Bootstrap Icons tabs for swapping a top-level admin menu icon.⌉[

The icon picker: searchable Dashicons and bundled Bootstrap Icons tabs for swapping
a top-level admin menu icon.

[⌊Per-role visibility — open the visibility selector to hide an item from selected
roles (cosmetic declutter, not access control).⌉⌊Per-role visibility — open the 
visibility selector to hide an item from selected roles (cosmetic declutter, not
access control).⌉[

Per-role visibility — open the visibility selector to hide an item from selected
roles (cosmetic declutter, not access control).

[⌊A renamed item showing the transient "Saved" state — the indicator auto-clears
to idle once the autosave settles.⌉⌊A renamed item showing the transient "Saved"
state — the indicator auto-clears to idle once the autosave settles.⌉[

A renamed item showing the transient “Saved” state — the indicator auto-clears to
idle once the autosave settles.

[⌊Reordering a top-level menu group by dragging — a live sortable-helper shows the
item in motion.⌉⌊Reordering a top-level menu group by dragging — a live sortable-
helper shows the item in motion.⌉[

Reordering a top-level menu group by dragging — a live sortable-helper shows the
item in motion.

[⌊Reordering a submenu item using the ▲/▼ move controls — the OS-independent, keyboard-
accessible reorder path.⌉⌊Reordering a submenu item using the ▲/▼ move controls —
the OS-independent, keyboard-accessible reorder path.⌉[

Reordering a submenu item using the ▲/▼ move controls — the OS-independent, keyboard-
accessible reorder path.

## 安装

 1. In your dashboard, go to **Plugins  Add New**, search for “Maestro: The Inline 
    Admin Menu Editor”, and click **Install Now**, then **Activate**.
 2. Or upload the plugin zip via **Plugins  Add New  Upload Plugin**, then activate
    it.
 3. Or, manually: unzip into `wp-content/plugins/maestro-menu-editor` and activate 
    from **Plugins**.
 4. After activating, click **Edit Menu** in the admin bar to start editing the admin
    menu in place.

## 常见问题

### Does hiding a menu item block access to that page or disable its features?

No — and this is important. Hiding an item is **cosmetic**: it removes the link 
from the admin menu but does not stop anyone from reaching the page by typing or

bookmarking its URL. Real access is governed by each page’s registered capability.
To truly block all access to a page, use a capability manager such as [User Role Editor](https://wordpress.org/plugins/user-role-editor/)
or [PublishPress Capabilities](https://wordpress.org/plugins/capability-manager-enhanced/).

### Do my changes affect everyone, or just me?

Everyone. Maestro stores one global configuration that applies to all users; it 
is not per-user. Per-role _visibility_ lets you hide items from specific roles,

but the rename/reorder/icon changes themselves are global.

### Can I hide items from administrators, too?

Yes. The hide by role feature includes the administrator role. However, you have
to be an administrator to use Maestro’s features, so if you hide a menu item from
administrators, you are hiding it from yourself as well.

Remember that this is cosmetic, not a permission change, and you can reset any or
all of the changes made in Maestro at any time.

### Does it work with custom roles from other plugins?

Yes. Any role registered on the site — including custom roles from User Role Editor,
Members, and similar plugins — appears automatically in the visibility
 control.

### Is the editor keyboard accessible?

Yes. You can select, rename, reorder (`Alt`+`Arrow`), open the icon and visibility
controls, and reset items without a mouse. Saves and moves are announced to screen
readers.

### What happens when I deactivate or reset the plugin?

The admin menu returns to exactly what WordPress and your active plugins generate.
Your customizations live in a single option as a sparse delta; **Reset All** deletes
that option, and deactivating the plugin stops it from being applied.

### Can I move an item between a top-level position and a submenu?

Not yet. Reparenting is deliberately deferred (see “Known limits” below). Top-level
items reorder among top-level items, and submenu items reorder within
 their current
parent.

## 评价

此插件暂无评价。

## 贡献者及开发者

「Maestro: The Inline Admin Menu Editor」是开源软件。 以下人员对此插件做出了贡献。

贡献者

 *   [ Dan Knauss ](https://profiles.wordpress.org/dpknauss/)

[帮助将「Maestro: The Inline Admin Menu Editor」翻译成简体中文。](https://translate.wordpress.org/projects/wp-plugins/maestro-menu-editor)

### 对开发感兴趣吗?

您可以[浏览代码](https://plugins.trac.wordpress.org/browser/maestro-menu-editor/)，
查看[SVN仓库](https://plugins.svn.wordpress.org/maestro-menu-editor/)，或通过[RSS](https://plugins.trac.wordpress.org/log/maestro-menu-editor/?limit=100&mode=stop_on_copy&format=rss)
订阅[开发日志](https://plugins.trac.wordpress.org/log/maestro-menu-editor/)。

## 更新日志

#### 1.2.0

 * Redesigned edit-mode toolbar: every control is now a compact icon button in one
   consistent system, with colour signalling meaning — green for editing/saved, 
   amber for unsaved changes, red for Reset All. Fully accessible: each control 
   keeps its name for screen readers and shows a tooltip on hover.
 * Mobile: the editor is reachable on phones now — the admin-bar “Edit Menu” toggle
   stays visible at small screen widths (it was hidden before), and the toolbar 
   and controls are sized for touch.
 * “Edit Mode” indicator: a persistent, glanceable cue that you’re editing, plus
   a one-time first-run hint highlighting the menu.
 * Rename: the field shows a placeholder label, and the transient “Saved” confirmation
   now clears itself after a moment so the toolbar stays quiet.
 * Reorder: keyboard (Alt+Arrow) and the new ▲/▼ buttons leave menu separators in
   place; the per-item Reset button is disabled when there’s nothing to undo.
 * Robustness: Maestro engages WordPress’s menu-order machinery only when you’ve
   actually reordered top-level items (otherwise it stays out of other plugins’ 
   way); the stored configuration is size-bounded; and concurrent save / reset /
   exit actions are race-safe.
 * Fix: the “modified” indicator now sits on the changed row’s label for items that
   have submenus.

#### 1.1.1

 * Editor: the selected item’s name is now screen-reader-only — the visible breadcrumb
   duplicated the rename field and ate horizontal space, and the controls are self-
   explanatory. Screen-reader users still get the item/submenu context.
 * Editor: shorter reset button labels — “Reset Item” and “Reset All”.

#### 1.1.0

 * Keyboard reordering: select a menu item, then press `Alt+ArrowUp` / `Alt+ArrowDown`
   to move it. Each move is announced to screen readers (politely for success, assertively
   when already at the boundary). No mouse required.
 * Modified indicator: changed items show a non-color glyph (•) with screen-reader
   text “(modified)” in edit mode. The indicator refreshes live on every rename,
   icon change, visibility change, and reset.
 * Discoverable per-item reset: the **Reset this item** button in the controls panel
   is now keyboard-reachable (Tab + Enter/Space) and is visually emphasised whenever
   the selected item has unsaved overrides.
 * Solid bundled icons: the Bootstrap Icons set now uses solid (`*-fill`) variants,
   so it mixes naturally with WordPress’s dashicons in the picker.
 * Edit-mode polish: clearer toolbar grouping, a more scannable icon grid, and a
   dismissible first-run hint.
 * Native save status: the saving / saved / error states now use WordPress dashicons(
   a spinner, a check, a warning) instead of emoji glyphs that some platforms recoloured
   or dropped; the idle state shows no icon.
 * Fixes: the saved status no longer renders a double check mark; the rename field
   no longer shifts as the title length changes; toolbar controls wrap instead of
   overlapping on narrow screens.
 * Listing: rewritten description and FAQ, plus a “Try it first” link to a live 
   WordPress Playground demo.

#### 1.0.0

 * Initial release: rename, reorder, per-role visibility, reset.
 * Icons: accepts all four native WordPress forms (dashicon, none, base64 image 
   data-URI, image URL); picker bundles dashicons + curated Bootstrap Icons with
   search, keyboard accessibility, and mobile-sized touch targets.
 * Editor: click-to-select with a shared panel, debounced single-flight autosave,
   and folded-mode neutralization.

## 额外信息

 *  版本 **1.2.0**
 *  最后更新：**3 小时前**
 *  活跃安装数量 **不到10**
 *  WordPress 版本 ** 6.4 或更高版本 **
 *  已测试的最高版本为 **7.0**
 *  PHP 版本 ** 7.4 或更高版本 **
 *  语言
 * [English (US)](https://wordpress.org/plugins/maestro-menu-editor/)
 * 标签
 * [admin menu](https://cn.wordpress.org/plugins/tags/admin-menu/)[admin menu editor](https://cn.wordpress.org/plugins/tags/admin-menu-editor/)
   [hide menu items](https://cn.wordpress.org/plugins/tags/hide-menu-items/)[menu editor](https://cn.wordpress.org/plugins/tags/menu-editor/)
   [menu icons](https://cn.wordpress.org/plugins/tags/menu-icons/)
 *  [高级视图](https://cn.wordpress.org/plugins/maestro-menu-editor/advanced/)

## 评级

尚未提交反馈。

[Your review](https://wordpress.org/support/plugin/maestro-menu-editor/reviews/#new-post)

[查看全部评论](https://wordpress.org/support/plugin/maestro-menu-editor/reviews/)

## 贡献者

 *   [ Dan Knauss ](https://profiles.wordpress.org/dpknauss/)

## 支持

有话要说吗？是否需要帮助？

 [查看支持论坛](https://wordpress.org/support/plugin/maestro-menu-editor/)

## 捐助

您愿意支持这个插件的发展吗?

 [ 捐助此插件 ](https://github.com/sponsors/dknauss)