如何让WordPress前端仅对shop_manager和editor角色显示后台工具栏?
解决WordPress后台工具栏角色限制问题
嘿,我来帮你调整这段代码!你原来的代码会让所有登录用户都显示WP后台工具栏,现在我们要把它改成只让shop_manager和editor这两个角色可见。
修改后的代码如下:
function admin_bar() { // 获取当前登录用户对象 $current_user = wp_get_current_user(); // 定义允许显示工具栏的角色数组 $allowed_roles = array('shop_manager', 'editor'); // 检查用户是否登录,且角色在允许列表内 if (is_user_logged_in() && array_intersect($allowed_roles, $current_user->roles)) { add_filter('show_admin_bar', '__return_true', 1000); } else { add_filter('show_admin_bar', '__return_false', 1000); } } add_action('init', 'admin_bar');
代码说明:
- 用
wp_get_current_user()获取当前登录用户的详细信息,方便后续角色校验; - 定义
$allowed_roles数组,把你需要允许的角色明确列出来,后续要调整角色直接修改这个数组就行; - 使用
array_intersect()函数判断当前用户的角色是否和允许列表有重叠,能精准匹配到目标角色; - 保持1000的优先级,确保这段代码的判断逻辑能覆盖其他可能影响工具栏显示的设置。
这样修改后,只有shop_manager和editor角色的用户能看到后台工具栏,其他所有角色(包括普通登录用户)都会被隐藏工具栏啦。
内容的提问来源于stack exchange,提问作者Sjors
相关产品推荐
相关产品推荐

