问题描述

如何检查当前登录的用户是管理员还是编辑者?

我知道如何单独做

  <?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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。