仅显示某些用户角色的管理栏

时间:2017-08-25 作者:Samuel

我在wordpress平台上有4个用户角色(role1、role2、role3、role4)

我正在寻找只显示角色1角色2的前端顶栏。

如何在此代码上添加一个条件以仅显示这2个角色?

function wpc_show_admin_bar() {
  return true;
}
add_filter(\'show_admin_bar\' , \'wpc_show_admin_bar\');
谢谢

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

您可以通过以下功能禁用管理栏:

show_admin_bar(false);
考虑到这一点,我们可以after_setup_theme 并隐藏所有用户的管理栏,除了administratorcontributor:

function cc_wpse_278096_disable_admin_bar() {
   if (current_user_can(\'administrator\') || current_user_can(\'contributor\') ) {
     // user can view admin bar
     show_admin_bar(true); // this line isn\'t essentially needed by default...
   } else {
     // hide admin bar
     show_admin_bar(false);
   }
}
add_action(\'after_setup_theme\', \'cc_wpse_278096_disable_admin_bar\');
我只使用administratorcontributor 例如。当然,您可以更改此设置并添加更多角色。

SO网友:Gerard Reches

我看到很多人使用after_setup_theme 操作而不是show_admin_bar 过滤器,但这个也可以。我想说唯一的区别是过滤器可能被覆盖,但我看不出有什么错。

function wpc_show_admin_bar() {
    // Add the roles to exclude from having admin bar.
    $excluded_roles = [ \'role3\', \'role4\' ];

    return is_user_logged_in() && ! array_intersect( wp_get_current_user()->roles, $excluded_roles);
}
add_filter(\'show_admin_bar\', \'wpc_show_admin_bar\');
简单明了,您只需将想要的角色添加到$excluded_roles 大堆只有当用户登录并且没有任何排除的角色时,该函数才会返回true。

结束

相关推荐

Customize Wordpress admin-bar

我想移动管理面板,这是当我在我的网站上,而不是在仪表板上显示。现在它像往常一样,在顶部,但它与我的固定导航交互,部分隐藏了它。所以我想把它垂直放在正确的位置。是否有这样的设置,或者我必须使用CSS?