按客户用户角色删除wp管理菜单

时间:2015-08-11 作者:Marc

我有一个自定义用户,我正在尝试最小化其访问权限。我想删除工具栏中的一些管理菜单,但仅限于此客户用户角色。我目前让它适用于不是管理员的所有人,但我无法按用户角色正确设置if函数。我的当前代码:

//Remove admin menu items if not admin
function remove_admin_bar_links() {
    global $wp_admin_bar, $current_user;

    if ($current_user->ID != 1) {
        $wp_admin_bar->remove_menu(\'updates\');          // Remove the updates link
        $wp_admin_bar->remove_menu(\'comments\');         // Remove the comments link
        $wp_admin_bar->remove_menu(\'new-content\');      // Remove the content link
        $wp_admin_bar->remove_menu(\'wp-logo\');          // Remove the WP Logo link
        $wp_admin_bar->remove_menu(\'wpseo-menu\');       // Remove the Yoast SEO menu
    }
}
add_action( \'wp_before_admin_bar_render\', \'remove_admin_bar_links\' );

1 个回复
最合适的回答,由SO网友:Webloper 整理而成

您可以使用wp_get_current_user() 获取当前登录用户角色的函数

//如果不是admin,则删除admin菜单项

function remove_admin_bar_links() {
    global $wp_admin_bar, $current_user;

     $user = wp_get_current_user();
     if ( in_array( \'author\', (array) $user->roles ) ) {
         $wp_admin_bar->remove_menu(\'updates\');          // Remove the updates link
         $wp_admin_bar->remove_menu(\'comments\');         // Remove the comments link
         $wp_admin_bar->remove_menu(\'new-content\');      // Remove the content link
         $wp_admin_bar->remove_menu(\'wp-logo\');          // Remove the WP Logo link
         $wp_admin_bar->remove_menu(\'wpseo-menu\');       // Remove the Yoast SEO menu
     }
 }
 add_action( \'wp_before_admin_bar_render\', \'remove_admin_bar_links\' );

结束

相关推荐