如何判断当前用户是否为管理员

在 WordPress 默认中,分五种角色(管理员、编辑、作者、投稿者、订阅者)和11种权限(level_0 ~ level_10),其中,管理员拥有最高权限(level_0 ~ level_10),编辑次之(level_0 ~ level_7)、再是作者(level_0 ~ level_2)、然后是投稿者(level_0 ~ level_1)、最后是订阅者(level_0)。

实例:如何判断当前用户是否为管理员

current_user_can这个函数用来判断当前用户是否具有某级别的权限。

判断是否为管理员,也就是Administrator:

 

    1. if(current_user_can(‘level_10’)){

 

    1. //加入符合管理员后需要添加的内容

 

    1. }

 

想判断其他级别的用户换个级别就可以了。

判断不同用户的角色和权限

 

    1. <?php

 

    1. global $wpdb;

 

    1. //显示管理员

 

    1. $administrators = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value = 10 ORDER BY user_id");

 

    1. //显示管理员、编辑

 

    1. //$editors = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 7 ORDER BY user_id");

 

    1. //显示管理员、编辑、作者

 

    1. //$authors = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 2 ORDER BY user_id");

 

    1. //显示管理员、编辑、作者、投稿者

 

    1. //$contributors = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 1 ORDER BY user_id");

 

    1. //显示管理员、编辑、作者、投稿者、订阅者

 

    1. //$subscribers = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 0 ORDER BY user_id");

 

    1. foreach($administrators as $administrator){

 

    1.     echo get_the_author_meta('display_name', $administrator).'<br />';

 

    1. }

 

    1. ?>

 

上面例子中输出权限最高的管理员用户,注释中分别是不同权限范围的用户,如需用到自行调用。


最后修改:2019 年 06 月 06 日
如果觉得我的文章对你有用,请随意赞赏