Remove menus and submenus

Try this:

add_action('_admin_menu', 'remove_editor_submenu', 1);
function remove_editor_submenu() {
    remove_action('admin_menu', '_add_themes_utility_last', 101);
}

add_action('admin_init', 'remove_theme_submenus');
function remove_theme_submenus() {
    global $submenu; 
    unset($submenu['themes.php'][5]);
    unset($submenu['themes.php'][7]);
    unset($submenu['themes.php'][15]);
}

To disable other submenu names, go to ./wp-admin/menu.php and search for the item(s) you want to disable.

EDIT: As far as disabling by username, I would instead add a new capability to a role and use that as your removal condition see here. Otherwise, just use what you already were using, like so:

add_action('_admin_menu', 'remove_editor_submenu', 1);
function remove_editor_submenu() {
    global $current_user;
    get_currentuserinfo();
    if($current_user->user_login == 'username') {
        remove_action('admin_menu', '_add_themes_utility_last', 101);
    }
}

add_action('admin_init', 'remove_theme_submenus');
function remove_theme_submenus() {
    global $submenu, $current_user;
    get_currentuserinfo();
    if($current_user->user_login == 'username') {
        unset($submenu['themes.php'][5]);
        unset($submenu['themes.php'][7]);
        unset($submenu['themes.php'][15]);
    }
}

Leave a Comment