X

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.



Code Snippet:


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');

Comments  Leave a Reply

  1. Print Form. Build-to-order Custom Manufacturing and Rapid Prototypes / Additive Manufacturing. Plastic and Metal materials. Any quantity.

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

  3. 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.

  4. Bolivar Amâncio Neto October 16, 2013 at 2:15 pm

    unset($GLOBALS[‘submenu’]);

  5. Zack Williamson August 16, 2013 at 4:48 pm

    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

  6. Thanks Kevin.
    Is possible remove this sub-menu?

    – Appearence –> Sidebars
    – Appearance –> Editor

  7. 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’);

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

    1. 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.

  9. 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.

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

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

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our privacy policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

WordPress Launch Checklist

The Ultimate WordPress Launch Checklist

We've compiled all the essential checklist items for your next WordPress website launch into one handy ebook.
Yes, Send Me the Free eBook!