Recommendations Before Enabling
- Disable conflicting sort tools. The Simple Sort Admin Menu toggle in the same subtab reorders Settings, Appearance, Tools, and Dashboard submenus alphabetically and overrides any custom order you save here. With Sort Top-Level Menus on, it also replaces the top-level order and removes custom separators and spacers. Keep only one menu reordering tool active at a time.
- Test on a staging site first. Role-based hiding blocks direct URL access, so a misconfigured rule can lock a role out of a page. Verify on a test environment before applying to production.
- You need the
manage_optionscapability. Only administrators can open the menu editor and save changes.
Manage Visibility Per Role
The Visibility button on any item opens a Hide from roles panel. Use it to control which roles see the item.
Hide from Roles
Turn on Hide from roles, then choose a scope:
- Everyone: hides the item from all users.
- Everyone except: hides the item from everyone except the roles you select. Pick the roles that still see it.
- Only these roles: hides the item only from the roles you select.
The panel lists only roles that have the capability required to open that item. For example, a page that requires edit_posts only lists roles that have that capability.
Keep Visible for Specific Users
In the same panel, use Keep visible for these users to override the role rules for specific people. Search for a user and add them. This rule overrides the role-based hiding for those users.
Direct URL Access Is Blocked
Role-based hiding is not cosmetic. When an item is hidden from a role, users of that role cannot open the page directly by URL either. They get a Sorry, you are not allowed to access this page message. This applies to top-level pages and to child pages whose parent is hidden.
Save, Expand, and Reset
- Save: the Save (⌘+S) button in the top corner saves all changes. The keyboard shortcut is ⌘+S on macOS and Ctrl+S on Windows.
- Expand All / Collapse All: toggles all submenu accordions open or closed.
- Reset All: restores the default WordPress menu and removes all custom order, renames, hides, custom items, separators, and spacers.
Verify It Works
After saving, open the WordPress admin sidebar and confirm:
- The reordered items appear in the order you set.
- Renamed titles and custom icons show correctly.
- Custom menus, separators, and spacers are visible in the sidebar.
- If you hid an item from a role, log in as a user of that role and confirm the item is missing and that its URL is blocked.
If a change does not appear, clear any admin or page cache, then reload.
Examples
Example 1: Group Related Items with a Separator
You want a cleaner sidebar for a client site. Add Add Separator before the Settings section and drag it into place. Rename a few verbose plugin titles to shorter ones. Save. The sidebar now reads more clearly and hides low-value plugin names.
Example 2: Create a Label-Only Section Heading
Add a custom menu item with Target Type set to None (label only) to create a section label in the sidebar, for example Internal Tools. Set its Alignment to left and choose a Title Color. Add submenus under it that link to the tools you want grouped there.
Example 3: Restrict a Menu to Editors
A client wants the Events menu hidden from subscribers. Open the Events item, turn on Hide from roles, and choose Only these roles. Select Subscriber and Customer. Save. Accounts with those roles no longer see Events or open its pages directly.
Troubleshooting
4 problems and how to fix each one.
The Menu submenu does not appear
Cause: The feature toggle is on but the page was not reloaded, or a cache is serving the old menu.
Fix: Reload the admin page after saving. Clear any admin or page cache.
My custom order is overridden
Cause: Simple Sort Admin Menu is also enabled and sorts the same submenus.
Fix: Disable Simple Sort Admin Menu (and Sort Top-Level Menus) in the Interface tab, then re-save your order. Rename and hide settings still apply while Simple Sort is on; only the order is overridden.
A role cannot open a page after hiding
Cause: Role-based hiding blocks direct URL access, including child pages whose parent is hidden.
Fix: Add the affected users to Keep visible for these users on the hidden item, or change the hide scope. Log in as that user to confirm the fix.
Separators or spacers disappear after saving
Cause: This was fixed in Classic Monks 2.1.0, but a stale cache or an active sort tool can still interfere.
Fix: Update to the latest version, clear caches, and disable Simple Sort Admin Menu if it is on.


