Wordpress Remove Submenus

时间:2013-02-20 作者:Pullapooh

我在这里找到了一个已回答的问题Remove menus and submenus 2 Answers 对于我的问题,但是否有一种方法可以稍微更改代码,以便删除所有编辑器角色的子菜单。不仅仅针对一个用户?有没有办法改进这段代码?我正在使用3.5.1 WordPress版本

code that I am using:

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]);
    }
}

2 个回复
最合适的回答,由SO网友:Michael Ecklund 整理而成

替换所有出现的$current_user->user_login == \'username\' 具有in_array(\'editor\', $current_user->roles). 您可以取消对的呼叫get_currentuserinfo(); 至于用户信息,可从全局变量中获得$current_user.

下面是代码交换:

add_action(\'_admin_menu\', \'remove_editor_submenu\', 1);
function remove_editor_submenu() {
    global $current_user;
    if(in_array(\'editor\', $current_user->roles)) {
        remove_action(\'admin_menu\', \'_add_themes_utility_last\', 101);
    }
}

add_action(\'admin_init\', \'remove_theme_submenus\');
function remove_theme_submenus() {
    global $submenu, $current_user;
    if(in_array(\'editor\', $current_user->roles)) {
        unset($submenu[\'themes.php\'][5]);
        unset($submenu[\'themes.php\'][7]);
        unset($submenu[\'themes.php\'][15]);
    }
}

SO网友:s_ha_dum

使用user_can.

if (user_can($current_user->ID,\'editor\')) { ...
我不知道您想要这两个函数中的哪一个,但应该很容易替换或添加到现有的if 有条件的

你说的是“编辑角色”——复数形式——但我假设你指的是“所有担任编辑角色的用户”。

结束

相关推荐

为什么使用ADMIN_PRINT_SCRIPTS-{HOOK}将脚本(.js)文件入队是错误的?

根据the Codex, 它只能用于头部的内联脚本标记。我一直在使用add_action(\'admin_print_scripts-{my-hook}\' 用于注射。js和add_action(\'admin_print_styles-{my-hook}\' 对于css没有任何问题。我使用wp\\u register\\u script();wp\\u enqueue\\u script()(以及相应的*_style() ) 让他们排队。“查看源”显示<link rel=\'stylesheet\