How to Hide Unnecessary Menu Items from WordPress Admin Dashboard

In this video, I will show you how you can hide unnecessary Dashboard Menu items on the WordPress website.

YouTube video
function remove_dashboard_menu_items() {
    global $menu;
    // Uncomment the lines below to exclude specific menu items
    // unset($menu[5]);    // Removes "Posts"
    // unset($menu[10]);   // Removes "Media"
    // unset($menu[20]);   // Removes "Pages"
    unset($menu[25]);   // Removes "Comments"
    unset($menu[60]);   // Removes "Appearance"
    unset($menu[65]);   // Removes "Plugins"
    unset($menu[70]);   // Removes "Users"
    unset($menu[75]);   // Removes "Tools"
    unset($menu[80]);   // Removes "Settings"
    remove_menu_page('index.php'); // Removes the Dashboard home page
}
add_action('admin_menu', 'remove_dashboard_menu_items');

Use this PHP code snippet in your WordPress website using any code manager plugin like WP Code, Code Snippets, etc.

You can also paste the code directly into the function.php file of your theme.

Here, Note that this code only hides the menu, it won’t remove it completely. You can easily restore any menu just by commenting on the line.

Hide Wordpress Dashboard Items based on User Role

If you want to Hide Wordpress Dashboard Items based on User Role then you can use the below Code snippets instead.

function remove_dashboard_menu_items() {
    global $menu;
    $user = wp_get_current_user();
    $user_role = $user->roles[0]; // Get the first user role assigned to the user
    
    if ($user_role == 'administrator') {
        // Admin can see all menu items
        return;
    } elseif ($user_role == 'editor') {
        // Editors can see Pages and Posts
        unset($menu[25]);   // Removes "Comments"
        unset($menu[60]);   // Removes "Appearance"
        unset($menu[65]);   // Removes "Plugins"
        unset($menu[70]);   // Removes "Users"
        unset($menu[75]);   // Removes "Tools"
        unset($menu[80]);   // Removes "Settings"
        remove_menu_page('index.php'); // Removes the Dashboard home page
    } else {
        // All other users see limited menu items
        unset($menu[5]);    // Removes "Posts"
        unset($menu[10]);   // Removes "Media"
        unset($menu[20]);   // Removes "Pages"
        unset($menu[25]);   // Removes "Comments"
        unset($menu[60]);   // Removes "Appearance"
        unset($menu[65]);   // Removes "Plugins"
        unset($menu[70]);   // Removes "Users"
        unset($menu[75]);   // Removes "Tools"
        unset($menu[80]);   // Removes "Settings"
        remove_menu_page('index.php'); // Removes the Dashboard home page
    }
}
add_action('admin_menu', 'remove_dashboard_menu_items');

Similar Posts

2 Comments

  1. Hi,

    What is the number for the menu item and where do I look for it:

    unset($menu[?]); // Removes “Templates”

    Regards

    1. Hii Brother,

      I’m also facing the same issue. Can you please help me to solve the same to hide the Elementor templates from the menu bar specifically for Authors?

      unset($menu[?]); // Removes “Templates” or something.

Leave a Reply

Your email address will not be published. Required fields are marked *