WordPress如何针对自定义用户角色触发CSS以隐藏指定菜单项目
WordPress 按用户角色加载自定义CSS隐藏指定菜单实现方案
你原有代码的核心逻辑是可行的,缺少将函数挂载到WordPress执行钩子的步骤,因此无法触发运行。完整可直接使用的实现如下:
function wpmu_role_based_style() { $current_user = wp_get_current_user(); // 未登录用户直接返回 if ( ! $current_user->exists() ) { return; } // 匹配批发客户角色 if ( in_array( 'wholesale_customer', $current_user->roles ) ) { ?> <style> .wholesale-shop { display: none !important; } </style> <?php } // 如需添加更多角色对应CSS,可在此处新增判断分支,示例: // if ( in_array( 'editor', $current_user->roles ) ) { // <style>对应的隐藏规则</style> // } } // 前台页面生效挂载wp_head,后台页面生效改为挂载admin_head add_action( 'wp_head', 'wpmu_role_based_style' );
补充说明
- 这里直接判断用户角色数组的写法,比
current_user_can更精准,不会因为权限继承出现误判 - CSS规则后加
!important是为了覆盖原有菜单的高优先级样式,测试如果可以正常隐藏可删除 - 如果你不需要严格区分角色,保留原有
current_user_can判断逻辑也可以,只要补上最后的add_action挂载步骤即可生效
内容的提问来源于stack exchange,提问作者Max Horrocks
相关产品推荐
相关产品推荐

