Home / admin / Remove all admin $submenu items
  • How to Remove all admin $submenu items

    remove-all-admin-submenu-items

    This is a list of all the wordpress submenus that you can remove from the wordpress admin. Please note that if you don’t remove the primary admin menus as well some sections will still be accessible.

    ( click code to copy )

    wordpress snippet : PHP

    <>
    function remove_submenus() {
      global $submenu;
      //Dashboard menu
      unset($submenu['index.php'][10]); // Removes Updates
      //Posts menu
      unset($submenu['edit.php'][5]); // Leads to listing of available posts to edit
      unset($submenu['edit.php'][10]); // Add new post
      unset($submenu['edit.php'][15]); // Remove categories
      unset($submenu['edit.php'][16]); // Removes Post Tags
      //Media Menu
      unset($submenu['upload.php'][5]); // View the Media library
      unset($submenu['upload.php'][10]); // Add to Media library
      //Links Menu
      unset($submenu['link-manager.php'][5]); // Link manager
      unset($submenu['link-manager.php'][10]); // Add new link
      unset($submenu['link-manager.php'][15]); // Link Categories
      //Pages Menu
      unset($submenu['edit.php?post_type=page'][5]); // The Pages listing
      unset($submenu['edit.php?post_type=page'][10]); // Add New page
      //Appearance Menu
      unset($submenu['themes.php'][5]); // Removes 'Themes'
      unset($submenu['themes.php'][7]); // Widgets
      unset($submenu['themes.php'][15]); // Removes Theme Installer tab
      //Plugins Menu
      unset($submenu['plugins.php'][5]); // Plugin Manager
      unset($submenu['plugins.php'][10]); // Add New Plugins
      unset($submenu['plugins.php'][15]); // Plugin Editor
      //Users Menu
      unset($submenu['users.php'][5]); // Users list
      unset($submenu['users.php'][10]); // Add new user
      unset($submenu['users.php'][15]); // Edit your profile
      //Tools Menu
      unset($submenu['tools.php'][5]); // Tools area
      unset($submenu['tools.php'][10]); // Import
      unset($submenu['tools.php'][15]); // Export
      unset($submenu['tools.php'][20]); // Upgrade plugins and core files
      //Settings Menu
      unset($submenu['options-general.php'][10]); // General Options
      unset($submenu['options-general.php'][15]); // Writing
      unset($submenu['options-general.php'][20]); // Reading
      unset($submenu['options-general.php'][25]); // Discussion
      unset($submenu['options-general.php'][30]); // Media
      unset($submenu['options-general.php'][35]); // Privacy
      unset($submenu['options-general.php'][40]); // Permalinks
      unset($submenu['options-general.php'][45]); // Misc
    }
    add_action('admin_menu', 'remove_submenus');
    

    ( WordPress codex functions, hooks, in this snippet. )

    admin_menu, add_action,
  • Rickygri

    Stumbled across this, very handy doing this without plugins. Cheers!

    • Cool glad to hear you like the snippet! Enjoy the rest of the site,

  • Whoaloic

    Thank you !
    But how to remove plugin settings submenu ?
    By example; I have “All in one favicon” plugin submenu that I want to remove.
    Regards.

  • Andre23

    Kevin, is possible remove some submenu items based just on username?

    • You could do this a few ways, eg: base on user role.

      if ( !current_user_can(‘author’)) {

      unset($submenu[‘index.php’][10]); // Removes Updates

      }

      or user name

      global $current_user;
      get_currentuserinfo();
      // change users in list
      $users = array(
      “ryan”,
      “steven”,
      “larry”,
      “jerry”
      );
      if (!in_array($current_user->user_login, $users)) {

      unset($submenu[‘index.php’][10]); // Removes Updates

      }

      something like this should work well for you, these of course should go inside the function.

  • Andre23

    Thanks Kevin. I try…but nothing changes:

    // Remove all admin $submenu items function remove_submenus() { global $current_user; get_currentuserinfo(); // change users in list $users = array( “User here”, ); if (!in_array($current_user->user_login, $users)) {
    unset($submenu[‘index.php’][10]); // Removes Updates unset($submenu[‘edit.php?post_type=page’][10]); // Add New page
    } } add_action(‘admin_menu’, ‘remove_submenus’);

  • degadesign

    Thanks Kevin.
    Is possible remove this sub-menu?

    – Appearence –> Sidebars
    – Appearance –> Editor

  • I want to remove “My Sites” that is only ofund in WPMU but its not on the list provided. Its part of the index.php menu but I don’t know the number or where to find it so I’m stuck at….

    unset($submenu[‘index.php’][??]); // Removes My Sites

  • Bolivar Am├óncio Neto

    unset($GLOBALS[‘submenu’]);

  • mroncetwice

    I needed to remove one specific sub-panel and wasnt able to find a way to access the sub-menus. Thank you so much for this script.

  • Is there a way to remove items based on user role?