The WordPress admin menu is a junk drawer, and Core knows it

The WordPress admin menu has been a free-for-all for years. Any plugin developer can claim a top-level spot, so the sidebar ends up cluttered and nobody owns the order. Clients then hunt for basic tools between custom icons and submenus that were never organized in the first place.

A recent proposal on the Core Make blog wants to change that, moving from every plugin for itself to a structured hierarchy. Extensibility is the reason WordPress won, but nothing in that sidebar enforces order, and the UX cost of it is showing.

The problem with the current WordPress admin menu

The mechanics are where it goes wrong. add_menu_page() and add_submenu_page() let a developer set a priority, and once a site runs 40 plugins those priorities collide. The sidebar turns into a junk drawer.

I have written before about building WordPress admin pages that don’t break later, though a well-built page is worth nothing if the client cannot find it. The proposal puts core items first, then a dedicated Plugins section, with bigger ecosystems like WooCommerce getting their own drill-down panels underneath.

The naive approach: cluttering the root

Most plugins hook admin_menu and demand a root slot. This is the standard messy version:

<?php
add_action( 'admin_menu', 'bbioon_naive_menu_placement' );

function bbioon_naive_menu_placement() {
    // This adds yet another top-level item, pushing Core links further down
    add_menu_page(
        __( 'My Heavy Plugin', 'textdomain' ),
        __( 'Heavy Plugin', 'textdomain' ),
        'manage_options',
        'bbioon-heavy-plugin',
        'bbioon_render_page',
        'dashicons-admin-generic',
        2 // Forcing it high up near the Dashboard
    );
}

The better approach: filtering for order

To get a usable WordPress admin menu today, the menu_order filter is what you have. It is what I reach for on client sites drowning in sidebar noise, and it is still a workaround for something Core has to solve in the architecture.

<?php
add_filter( 'custom_menu_order', '__return_true' );
add_filter( 'menu_order', 'bbioon_enforce_menu_hierarchy' );

function bbioon_enforce_menu_hierarchy( $menu_order ) {
    if ( ! $menu_order ) return $menu_order;

    // Specifically define the order we want
    return array(
        'index.php',                  // Dashboard
        'separator1',                 // First separator
        'edit.php?post_type=page',    // Pages
        'edit.php',                   // Posts
        'upload.php',                 // Media
        'separator2',                 // Second separator
        'plugins.php',                // Plugins
        'themes.php',                 // Appearance
        'options-general.php',        // Settings
    );
}

What the proposal would change

Pinning is part of it: show the three most recently used plugins under the Dashboard. The proposal also argues that in niches like LMS or eCommerce, those plugins should get top billing, which is at least honest about how people work. For plenty of business owners, WooCommerce is the website.

If items are hard to find, your admin menu search query may be part of the problem as well. One consistent hierarchy means less guessing, and the sidebar stops being the slowest part of the admin.

If this WordPress admin menu work is eating your dev hours, I can take it over. I have been building on WordPress since the 4.x days.

Where this leaves us

The sidebar order should reflect what the site owner does all day. Right now it reflects whoever passed the lowest priority number. Pinning, a strict split between core and plugin items, or some mix of the two would all beat that. Until Core settles it, filter your own menus and keep the WordPress admin menu readable for the person who has to use it every day.

author avatar
Ahmad Wael
I'm a WordPress and WooCommerce developer with 15+ years of experience building custom e-commerce solutions and plugins. I specialize in PHP development, following WordPress coding standards to deliver clean, maintainable code. Currently, I'm exploring AI and e-commerce by building multi-agent systems and SaaS products that integrate technologies like Google Gemini API with WordPress platforms, approaching every project with a commitment to performance, security, and exceptional user experience.