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

在 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 日 08 : 22
如果觉得我的文章对你有用,请随意赞赏