Skip to content
WordPress

Reordering and Hiding Items in the WordPress Admin Menu

WordPress admin menu order customisation reorganises the sidebar, hides irrelevant items from client roles, and creates a branded admin experience. This guide covers plugins, PHP filters, and white-labelling.

Reordering and Hiding Items in the WordPress Admin Menu

Every WordPress installation ships with the same admin menu order — Posts, Media, Pages, Comments, Appearance, Plugins, Users, Tools, Settings. For teams who use specific sections constantly and never touch others, navigating past irrelevant items dozens of times a day wastes time. WordPress admin menu order customisation reorganises the admin sidebar to match actual workflows, highlights the items used most frequently, and hides or removes sections that specific user roles should never need to access. We go deeper on the whole subject in our Complete Guide to WordPress How.

WordPress Admin Menu Order — The Admin Menu Editor Plugin

Admin Menu Editor by Janis Elsts is the standard tool for WordPress admin menu order customisation — over 200,000 active installations with a clean drag-and-drop interface that does not require any PHP code. The free version handles menu reordering, renaming, and hiding; the Pro version adds role-specific menus and capability-based access control.

Install Admin Menu Editor → Settings → Menu Editor. The interface shows every menu item and submenu as a draggable list. Drag any item to reorder it. To move a menu item to the top: drag it above all others and release. To create a custom group at the top with the most-used items (Posts, Appearance, Plugins) followed by the rest: drag those three items to positions 1, 2, 3, then leave all others in their original relative order below. Click Save Changes → the admin sidebar immediately reflects the new order. Changes apply to all logged-in users who share the same role (or all users if the free version applies changes globally). The Admin Menu Editor also allows renaming any menu item — renaming “Posts” to “Articles” or “Appearance” to “Design” in the sidebar makes the interface more intuitive for clients who are not familiar with WordPress’s default terminology.

Hiding admin menu items from specific user roles is the most powerful application of WordPress admin menu order customisation for agency-managed sites. A client site where the client should manage Posts, Pages, and Media — but never touch Plugins, Themes, or Settings — benefits from hiding those technical items from the Editor or Author role entirely. In Admin Menu Editor → Menu Editor: click any menu item → in the item settings panel on the right, find “Required capability” → change from the default to “manage_options” (or any capability the client role does not have). The menu item disappears from view for users without that capability. The item still exists and functions for admin-level users — only the sidebar visibility changes. According to the WordPress developer documentation, menu registration capability requirements control both display and access — a menu item requiring manage_options is not visible to and not accessible by subscribers, editors, or other roles below administrator, making capability-based hiding a reliable security measure rather than just a visual change.

Reordering Menus With PHP — No Plugin Approach

A code-only WordPress admin menu order uses two WordPress filters: menu_order and custom_menu_order. These filters allow specifying the exact order of top-level menu items programmatically in functions.php or a must-use plugin.

add_filter('custom_menu_order', '__return_true'); // Enable custom ordering
add_filter('menu_order', function($menu_order) {
    return [
        'index.php',           // Dashboard
        'edit.php',            // Posts
        'upload.php',          // Media
        'edit.php?post_type=page', // Pages
        'separator1',
        'themes.php',          // Appearance
        'plugins.php',         // Plugins
        'separator2',
        'users.php',           // Users
        'options-general.php', // Settings
    ];
});

Menu items not listed in the WordPress admin menu order array are appended in default order in their default order — so the array only needs to specify the items whose position should change, not every menu item. The separator items (separator1, separator2, separator-last) are the grey horizontal lines in the WordPress admin sidebar — their positions can also be controlled through this filter. This PHP approach creates a persistent WordPress admin menu order that applies to all users and survives plugin and theme updates without any plugin dependency. The trade-off: changing the order requires editing the code rather than using a drag-and-drop interface, and the order applies globally to all users rather than being configurable per role without additional conditional logic. Our guide on WordPress hooks and filters covers the filter mechanism used here — menu_order and custom_menu_order are standard WordPress filters that follow the same add_filter() pattern as all other WordPress content filters.

Role-Specific Admin Menus

Different roles need different WordPress admin menu order configurations — an Author needs Posts and Media; an Editor needs Posts, Media, Pages, and Comments; a Shop Manager needs WooCommerce; an Administrator needs everything. Role-specific WordPress admin menu order customisation shows each user only the menu items relevant to their role.

PHP-based WordPress admin menu order for roles uses get_current_user:

add_filter('custom_menu_order', '__return_true');
add_filter('menu_order', function($menu_order) {
    $user = wp_get_current_user();
    if (in_array('editor', $user->roles)) {
        return [
            'index.php',
            'edit.php',
            'upload.php',
            'edit.php?post_type=page',
            'edit-comments.php',
        ];
    }
    return $menu_order; // Default order for all other roles
});

This returns a simplified menu for editors containing only their relevant items, while all other roles see the default order. Admin Menu Editor Pro handles this more elegantly with a role-switcher interface — switch to any role in the editor → configure the menu order and visible items for that role → switch to another role and configure independently. Each role’s configuration is stored separately. For sites with multiple custom roles (franchise network with franchise_admin, franchise_editor, franchise_viewer roles), role-specific WordPress admin menu order configuration ensures each role sees only the controls they need and cannot accidentally navigate to admin sections outside their permissions. Our guide on managing WordPress user roles covers the custom role creation and capability assignment that determines what each role can access — the menu visibility customisation described here works alongside role capabilities to create a clean, focused experience for each user type.

White-Label Client Admin Menus

Agencies delivering WordPress sites to clients often combine WordPress admin menu order customisation with complete rebranding to create a professional, simplified admin experience that feels like a custom CMS rather than a generic WordPress installation.

A complete white-label admin menu for a client publishing workflow: rename “Posts” to “Articles” (or “News” or “Blog Posts” — whatever makes sense for the client’s mental model), remove all Appearance sub-menus except “Menus” and “Background,” hide Plugins and Tools entirely from the client role, add a custom top menu item “Help & Support” that links to the agency’s client support portal. Admin Menu Editor handles all of these changes. The Custom Links feature allows adding external URLs as menu items — a “Get Help” menu item at the top of the sidebar linked to the agency’s client portal makes support access instant without leaving the WordPress admin context.

Preserving a simplified WordPress admin menu order through plugin and WordPress updates requires using a plugin or must-use plugin (wp-content/mu-plugins/) for the menu customisation code. Regular plugins can be accidentally deactivated by clients, resetting the admin menu to WordPress defaults. Must-use plugins run automatically and cannot be deactivated from the Plugins screen — placing the menu customisation code in a must-use plugin ensures the customised admin experience persists regardless of what the client does with other plugins. The Admin Menu Editor plugin itself should also be placed in a must-use plugin context for client sites where the agency wants to prevent the client from modifying the custom menu configuration. Reviews from the Admin Menu Editor documentation confirm that combining menu reordering, item renaming, capability-based hiding, and role-specific configurations provides a fully customisable WordPress admin environment that meets the needs of both simple single-author blogs and complex multi-role enterprise WordPress installations. Our guide on customising the WordPress color scheme covers the admin visual branding that pairs with WordPress admin menu order customisation for a complete white-label admin implementation — a branded colour scheme combined with a reorganised and simplified menu creates a polished branded admin experience for agency client sites.

Dashboard widget order and visibility is an extension of WordPress admin menu order customisation that applies to the WordPress dashboard specifically rather than the sidebar menu. The WordPress dashboard shows multiple widgets by default — At a Glance, Activity, Quick Draft, WordPress News, and any widgets added by plugins. For clients who find the busy dashboard confusing, simplifying it to a custom welcome panel with key site metrics and quick links to the most-used functions creates a better first impression on admin login. Disable default dashboard widgets via the screen options: Dashboard → Screen Options (top right) → uncheck widgets to hide. For client sites where you want to enforce a specific dashboard layout: add to functions.php remove_action('welcome_panel', 'wp_welcome_panel'); to remove the default welcome panel, then register a custom welcome panel with add_action('welcome_panel', 'my_custom_welcome_panel');. The custom welcome panel can include the client’s logo, quick links to their most-used functions, a brief CMS guide, and the agency’s support contact — creating a branded first-screen experience that reinforces the relationship on every login.

Admin menu icons can be changed as part of WordPress admin menu order customisation to visually distinguish custom or renamed menu items from default WordPress icons. Dashicons (WordPress’s built-in icon font) provides hundreds of icons — find icon classes at developer.wordpress.org/resource/dashicons/. Change a menu item’s icon with CSS targeting: add add_action('admin_head', function() { echo '<style>#adminmenu .menu-icon-edit div.wp-menu-image::before { content: "f108"; }</style>'; }); where f108 is the Dashicon unicode value. The Admin Menu Editor Pro plugin provides an icon picker in its interface — click any menu item and select a new Dashicon without writing CSS. Custom icon styling combines naturally with renaming (Posts → Articles) and reordering (moving Articles to the top) to create a completely personalised admin sidebar where the visual language matches the client’s workflow rather than WordPress’s developer-centric defaults. The combination of reorganised order, clear icon identifiers, and familiar renamed labels reduces admin navigation confusion for non-technical clients and translates directly into fewer support requests about “where do I find X in the admin.”

Evaluating whether WordPress admin menu order customisation is working as intended requires testing from the perspective of each user role that accesses the admin. Log in as each role (create test accounts for each: subscriber, editor, author, shop manager) and confirm: the menu shows only the items that role should see, the order matches the workflow optimisation intended, renamed items are clear and intuitive rather than confusing, and no critical administrative function is accidentally hidden that the role needs for their work. This role-based testing is particularly important after any WordPress core update, major plugin update, or theme change — these events can reset menu customisation, reintroduce default menu items, or change capability requirements for specific functions in ways that invalidate previously configured visibility rules. A post-update admin menu audit for each role as part of the update workflow ensures the customised admin experience is maintained consistently throughout the site’s lifecycle.

The admin bar at the top of the WordPress screen (both the admin and the front-end when logged in) is a separate customisation target from the admin sidebar menu. The WordPress admin menu order customisation tools (Admin Menu Editor, menu_order filter) control the sidebar; the admin bar uses its own WordPress toolbar API accessed through the $wp_admin_bar global in the admin_bar_menu action. Add custom toolbar items: add_action('admin_bar_menu', function($wp_admin_bar) { $args = ['id' => 'support', 'title' => 'Get Support', 'href' => 'https://support.agency.com', 'parent' => 'top-secondary']; $wp_admin_bar->add_node($args); }, 100);. Remove default toolbar items: add_action('admin_bar_menu', function($wp_admin_bar) { $wp_admin_bar->remove_node('wp-logo'); $wp_admin_bar->remove_node('updates'); }, 999);. Removing the WordPress logo from the admin bar and the “Updates” notification from the toolbar (while still allowing updates through the WordPress admin Updates screen) removes visual clutter from the client-facing toolbar while maintaining all the underlying functionality. The combined effect of sidebar menu reordering, capability-based hiding, item renaming, dashboard customisation, and admin bar customisation creates the most comprehensive white-label admin experience possible within WordPress’s native customisation system.

Documenting the WordPress admin menu order configuration for handoff between agencies or developers requires exporting the current configuration in a reproducible format. Admin Menu Editor exports its settings as a JSON file: Admin Menu Editor → Menu Editor → Export → downloads the complete menu configuration. Import this JSON on any WordPress site with Admin Menu Editor installed to replicate the exact menu structure. Store the exported JSON in the project repository alongside the theme code and deployment scripts — ensuring the admin menu customisation is as reproducible as any other part of the site’s configuration. For PHP-based customisation (functions.php or must-use plugins), the code itself serves as the documentation and the reproduction mechanism — any developer who deploys the code gets the correct menu order automatically. The choice between plugin-based and code-based WordPress admin menu order customisation often comes down to whether the configurator is a developer who is comfortable maintaining code, or an agency account manager who needs to adjust menu items without code editing — both approaches achieve the same result through different interfaces suited to different skill levels.

Nikolas Lamprou

Nikolas Lamprou (MSc; GCFR, SC-200, Security+) has been working with computers professionally since 2009 — starting with web development and e-commerce, and moving into cybersecurity over the years. Based in Greece, he brings over 15 years of real-world IT experience to SolveTechToday, where he writes about Windows fixes, software reviews, security tools, and AI applications. His goal is straightforward: cut through the noise and give readers clear, honest guidance on the tech decisions that matter.

Stay Ahead

Fix your next problem before it starts

Get the week's best Windows fixes, software picks, and security guides delivered straight to your inbox. No noise, just solutions.

Press ESC to close · Try "Windows 11" or "Chrome"