WordPress admin menu customization

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.
WordPress Admin MenuAdmin Menu Organizer
Dashboard
Bricks
WordPress
Media
Posts
Crocoblock
JetEngine
Settings
Menu order savedChanges apply instantly for the selected role.
Live
Quick answer

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.

The unorganized menu problem

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.

A dedicated WordPress solution

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.

Verified feature set

Practical menu controls in a single module

Every capability below is present in the supplied PHP class, admin view, JavaScript interface and settings registration.

Visibility

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.

Per rolehide_roles
Access control

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.

403 responseDirect URL
Labels

Custom item labels

Any menu or submenu label can be renamed, while the original WordPress label is preserved and restorable at any time.

RenameRestore original
Structure

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.

Virtual submenuPromote to top
Custom entries

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.

DashiconColor pills
Practical use cases

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.

Operational benefits

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.

Applied without editing filesThe saved configuration is reapplied on every admin_menu execution, so no plugin or theme file needs to be modified.
Fully reversibleA reset restores the original WordPress menu, and renamed labels keep their original text for one-click restoration.
Configuration stored separatelyThe layout is saved in its own towp_amo_config option rather than nested inside the general plugin settings.
Enforced beyond the menuHiding an item removes it from the visible menu and blocks direct navigation to its URL for the restricted roles.
Performance behaviour

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.

Security implementation

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.

01

Administrator-only controls

The admin page and the save AJAX handler both require the manage_options capability.

02

Nonce-protected saving

The save action calls check_ajax_referer() with a dedicated Admin Menu Organizer nonce before processing any submitted configuration.

03

Field-by-field sanitization

Decoded JSON is never trusted as-is: every label, role, URL, color and slug is sanitized individually before being stored.

04

Safety net for administrators

Administrators always retain access to the TheOneWP configuration pages even if accidentally hidden, preventing an accidental lock-out.

Verified compatibility

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.

Menu hooks

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.

custom_menu_ordermenu_order
Request blocking

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.

admin_initadmin_menu
Placement

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.

submenustandalone
Solution comparison

TheOneWP versus common alternatives

Compare the verified Admin Menu Organizer implementation with typical combinations of standalone plugins, custom snippets or manual functions.php code.

CapabilityTheOneWP Admin Menu OrganizerOther common solutions
Drag-and-drop reordering Full menu and per-submenu reordering, saved through native filtersCoverage is often limited to top-level items only
Role-based hiding Hides any item or submenu per selected role, enforced on direct URLs tooMay only hide visually via CSS, leaving the URL still reachable
Custom separators Colored separators with an optional label pill, applied via CSSOften unavailable or requires a separate code snippet
Custom menu/submenu items Add links with a custom label, URL, dashicon and positionMay require manual functions.php edits
Item renaming Rename with the original label preserved for restorationRenaming can be permanent or unavailable
Submenu promotion/nesting Promote a submenu to top-level or nest an item into another's submenuTypically not offered
Administration One TheOneWP screen with nonce-protected AJAX savingMay span multiple plugins or manual code edits
Recommended workflow

Rebuild the admin menu in four steps

Adjust the structure first, then apply role restrictions once the layout looks right.

01

Enable Admin Menu Organizer

Activate the module from the TheOneWP Utility settings tab and open its dedicated administration screen.

02

Reorder and rename

Drag top-level and submenu items into the desired order, renaming labels where the default plugin name is unclear.

03

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.

04

Add separators and save

Insert colored separators and any custom menu or submenu links, then save to apply the configuration instantly.

Best practices

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.

01

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.

02

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.

03

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.

04

Keep custom entries maintained

Review custom menu and submenu links periodically, since the module does not validate that an external URL remains reachable.

Common mistakes

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.

Frequently asked questions

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.