Organize and control your WordPress admin menu
Admin Menu Organizer combines drag-and-drop reordering, per-role hiding, custom labels, colored separators and custom menu links in one dedicated WordPress administration screen.
- Drag and drop to reorder top-level and submenu items.
- Hide menu and submenu items for specific user roles.
- Rename labels and add colored custom separators.
- Add custom menu and submenu items pointing anywhere.
What does Admin Menu Organizer do?
When the admin_menu_organizer module is active, TOWP_Admin_Menu_Organizer reads the current WordPress admin menu and submenu, then lets an administrator drag items into a new order, hide individual items per user role, rename labels, nest an item into another item's submenu, promote a submenu entry to a top-level menu, insert colored custom separators and add custom menu or submenu links. The configuration is stored as JSON in a dedicated option and reapplied to the menu on every admin request.
Every installed plugin adds its own menu entry
A default WordPress admin menu grows in the order plugins happen to register their pages, not in the order a specific role actually needs them.
Order depends on load order, not on priority
Each active plugin registers its own top-level and submenu pages during admin_menu, so the resulting list reflects installation order rather than how an editor, author or shop manager uses the dashboard day to day.
Not every role needs to see everything
Configuration screens meant for administrators remain visible to every role by default, and there is no native WordPress option to hide, rename or regroup them without editing plugin code directly.
Reorder, hide and rebuild the admin menu safely
The module hooks into admin_menu and the core menu_order filter to read, transform and reapply the interface without touching any plugin file.
Reorder with drag and drop
jQuery UI Sortable powers the reordering interface, and the saved order is applied through the native menu_order filter.
Hide items per role
Individual top-level and submenu items can be hidden for one or more selected user roles, enforced both in the visible menu and on direct access.
Build a structure that fits
Items can be nested into a virtual submenu, promoted to a standalone top-level entry, renamed, or supplemented with custom links and colored separators.
Practical menu controls in a single module
Every capability below is present in the supplied PHP class, admin view, JavaScript interface and settings registration.
Drag-and-drop menu ordering
Top-level items and each individual submenu can be reordered independently; the saved sequence is applied through the custom_menu_order and menu_order filters.
Role-based item hiding
Any top-level or submenu entry can be hidden for one or more roles, with the active role list filterable through the towp_user_roles hook.
Blocked-page protection
Hidden items are also blocked at the request level on admin_init and admin_menu, redirecting non-authorized roles away from the direct URL.
Custom item labels
Any menu or submenu label can be renamed, while the original WordPress label is preserved and restorable at any time.
Nesting and promotion
A top-level item can be nested into another item's submenu, and any submenu item can be promoted to its own standalone top-level menu entry.
Custom items and separators
Administrators can add custom menu or submenu links with their own label, URL, dashicon and position, plus colored separators with an optional label pill.
Where a rebuilt admin menu helps most
The module supports sites that need a menu shaped around what each role actually does, not around plugin installation order.
Agency client sites
Present each client with a menu limited to the areas relevant to their role, hiding technical modules meant for the agency's own administrators.
WooCommerce and membership sites
Hide store configuration, developer tools or page-builder menus from shop managers or content editors who never need to open them.
Large multi-plugin installations
Group related plugin entries under labeled separators and nested submenus so a long, unordered menu becomes a short, purpose-built list.
Turn a cluttered menu into a repeatable workflow
The module combines reordering, hiding, renaming and custom entries without changing WordPress users, roles or plugin files.
admin_menu execution, so no plugin or theme file needs to be modified.towp_amo_config option rather than nested inside the general plugin settings.Focused checks with bounded overhead
The verified implementation limits its interface assets to the organizer's own page and reads the live menu only once per request.
Page-specific assets
The organizer stylesheet and script are enqueued only when the current admin hook contains the module's page slug.
Non-autoloaded configuration
The saved layout is stored with autoload disabled, keeping it out of WordPress's automatic option loading on every request.
One-time menu read
The current menu and submenu are read once per admin page load to build the editor list, then reapplied through native WordPress filters rather than duplicate registrations.
Restricted administration and validated input
The code includes explicit capability checks, an AJAX nonce, field-by-field sanitization and a built-in safety net for administrators.
Administrator-only controls
The admin page and the save AJAX handler both require the manage_options capability.
Nonce-protected saving
The save action calls check_ajax_referer() with a dedicated Admin Menu Organizer nonce before processing any submitted configuration.
Field-by-field sanitization
Decoded JSON is never trusted as-is: every label, role, URL, color and slug is sanitized individually before being stored.
Safety net for administrators
Administrators always retain access to the TheOneWP configuration pages even if accidentally hidden, preventing an accidental lock-out.
Built around native WordPress menu hooks
The supplied code integrates through APIs present in WordPress core. No compatibility claim beyond the verified implementation is assumed.
admin_menu / menu_order
Reordering integrates through the core custom_menu_order and menu_order filters, running after every other plugin has registered its pages.
admin_init
Direct access to a hidden page is intercepted before output on admin_init, with a secondary check on admin_menu for submenu items whose parent is hidden.
Submenu or standalone
The module's own settings page can be kept as a TheOneWP submenu entry or promoted to a standalone top-level menu item.
TheOneWP versus common alternatives
Compare the verified Admin Menu Organizer implementation with typical combinations of standalone plugins, custom snippets or manual functions.php code.
| Capability | TheOneWP Admin Menu Organizer | Other common solutions |
|---|---|---|
| Drag-and-drop reordering | Full menu and per-submenu reordering, saved through native filters | Coverage is often limited to top-level items only |
| Role-based hiding | Hides any item or submenu per selected role, enforced on direct URLs too | May only hide visually via CSS, leaving the URL still reachable |
| Custom separators | Colored separators with an optional label pill, applied via CSS | Often unavailable or requires a separate code snippet |
| Custom menu/submenu items | Add links with a custom label, URL, dashicon and position | May require manual functions.php edits |
| Item renaming | Rename with the original label preserved for restoration | Renaming can be permanent or unavailable |
| Submenu promotion/nesting | Promote a submenu to top-level or nest an item into another's submenu | Typically not offered |
| Administration | One TheOneWP screen with nonce-protected AJAX saving | May span multiple plugins or manual code edits |
Rebuild the admin menu in four steps
Adjust the structure first, then apply role restrictions once the layout looks right.
Enable Admin Menu Organizer
Activate the module from the TheOneWP Utility settings tab and open its dedicated administration screen.
Reorder and rename
Drag top-level and submenu items into the desired order, renaming labels where the default plugin name is unclear.
Hide by role and restructure
Hide selected items per role, nest related entries into a submenu, or promote a submenu item to the top level.
Add separators and save
Insert colored separators and any custom menu or submenu links, then save to apply the configuration instantly.
Restructure the menu without locking anyone out
A rebuilt menu is effective only when access paths and recovery routes are understood before roles are restricted broadly.
Keep your own access visible
Avoid hiding the Admin Menu Organizer page itself for the administrator role, since that removes the fastest way to reverse a change from the interface.
Test role changes in a second session
Verify a role's resulting menu with a test account before hiding items broadly, since hiding also blocks direct URL access for that role.
Use separators to group related plugins
Group entries from the same plugin family under labeled separators rather than leaving them scattered through the default order.
Keep custom entries maintained
Review custom menu and submenu links periodically, since the module does not validate that an external URL remains reachable.
Avoid assumptions that break navigation
The module has a defined scope and relies on the roles and slugs WordPress and other plugins register.
Hiding your own administrator access
Hiding a page for every role, including administrator, can block the very screen needed to undo the change; the safety net only covers the plugin's own configuration pages.
Expecting hidden items to disappear for administrators too
Role-based hiding targets only the selected roles; an account with manage_options can always see and reach TheOneWP screens.
Assuming plugin updates preserve custom slugs
A plugin update that changes its menu slug will no longer match the saved configuration for that entry, and the item may need to be re-added.
Admin Menu Organizer FAQ
These answers are derived from the verified class, admin view, AJAX handler and settings registration.
What does Admin Menu Organizer do?
It lets an administrator reorder, hide, rename and restructure the WordPress admin menu and submenu, plus add custom separators and custom menu or submenu links, from one dedicated screen.
Does hiding an item also block direct access to its URL?
Yes. Alongside removing the item from the visible menu, the module intercepts direct navigation to a hidden page on admin_init and redirects the restricted role away from it.
Can I hide a submenu item without hiding its parent?
Yes. Visibility rules are stored per individual item, so a specific submenu entry can be hidden for selected roles while its parent menu stays visible.
Can I rename a menu label and later restore the original?
Yes. The original WordPress label is kept separately from the custom label, so a renamed item can be restored to its default text at any time.
Can a submenu item become its own top-level menu?
Yes. A submenu entry can be promoted to a standalone top-level menu item, and a top-level item can equally be nested into another item's submenu.
How are custom separators styled?
Each separator supports an optional label pill with configurable line, border, font and background colors, applied through CSS injected on admin_head.
Can I add a menu item that points to an external URL?
Yes. Custom menu and submenu items accept any URL together with a label, an optional dashicon and a position value.
Who can access and save changes in Admin Menu Organizer?
The admin page and the save action both require the manage_options capability, and every save request is also verified against a dedicated AJAX nonce.
Where is the reorganized menu configuration stored?
The configuration is saved as JSON in a dedicated towp_amo_config option, separate from the plugin's general settings, with autoload disabled.
Can the module's own settings page become a standalone top-level menu?
Yes. A setting controls whether the Admin Menu Organizer screen appears as a TheOneWP submenu entry or as its own standalone top-level menu item.
Stop scrolling past menu items you don't need.Build the menu each role actually uses.
Use Admin Menu Organizer to combine WordPress drag-and-drop reordering, role-based hiding and custom entries inside one protected administration interface.

