如何判断当前用户是否为管理员
在 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:
- if(current_user_can(‘level_10’)){
- //加入符合管理员后需要添加的内容
- }
想判断其他级别的用户换个级别就可以了。
判断不同用户的角色和权限
- <?php
- global $wpdb;
- //显示管理员
- $administrators = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value = 10 ORDER BY user_id");
- //显示管理员、编辑
- //$editors = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 7 ORDER BY user_id");
- //显示管理员、编辑、作者
- //$authors = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 2 ORDER BY user_id");
- //显示管理员、编辑、作者、投稿者
- //$contributors = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 1 ORDER BY user_id");
- //显示管理员、编辑、作者、投稿者、订阅者
- //$subscribers = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 0 ORDER BY user_id");
- foreach($administrators as $administrator){
- echo get_the_author_meta('display_name', $administrator).'<br />';
- }
- ?>
上面例子中输出权限最高的管理员用户,注释中分别是不同权限范围的用户,如需用到自行调用。