问题描述
如何检查当前登录的用户是管理员还是编辑者?
我知道如何单独做
<?php if( current_user_can('editor')) { ?>
stuff here for editors
<?php } ?>
<?php if( current_user_can('administrator') { ?>
stuff here for admins
<?php } ?>
但是我如何在一起工作呢?也就是用户是管理员还是编辑?
最佳解决方案
第一个答案,不是 WordPress 相关因为只是 PHP,使用逻辑”OR” 运算符:
<?php if( current_user_can('editor') || current_user_can('administrator') ) { ?>
// stuff here for admins or editors
<?php } ?>
如果要检查两个以上角色,可以检查当前用户的角色是否位于角色阵列中,如下所示:
$user = wp_get_current_user();
$allowed_roles = array('editor', 'administrator', 'author');
<?php if( array_intersect($allowed_roles, $user->roles ) ) { ?>
//stuff here for allowed roles
<?php } ?>
但是,current_user_can
不仅可以与用户角色名称一起使用,还可以使用功能。所以,一旦编辑和管理员都可以编辑页面,您的生活可以更容易地检查该功能:
<?php if( current_user_can('edit_others_pages') ) { ?>
// stuff here for user roles that can edit pages: editors and administrators
<?php } ?>
看看 here 有关功能的更多信息。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。