找回密码
 免费注册

WordPress如何判断注册用户角色权限等级

[复制链接]
admin 发表于 2020-8-15 14:23:48 | 显示全部楼层 |阅读模式

前几天给客户仿制一个模板,其中网页底部调用显示网站注册用户中的管理员和编辑两个角色,wordpress系统默认的用户角色有管理员、编辑、作者、投稿者以及订阅者,每个角色的权限等级不一样,要想仅仅调用用户中的管理员和编辑两个角色,可以通过判断各角色的权限等级筛选,然后调用数据!下面是通过用查询数据库实现的方法。

WP系统默认的五种角色共分为11种权限(level_0 ~ level_10),其中管理员拥有最高权限(level_0 ~ level_10),编辑(level_0 ~ level_7)、作者(level_0 ~ level_2)、投稿者(level_0 ~ level_1)、订阅者(level_0)。在数据库中,关于权限的字段位于数据库中 wp_usermeta 表中的 meta_value,所以判断函数可以这么写:

  1. <?php   
  2.         global $wpdb;
  3.         //显示管理员
  4.         $administrators = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value = 10 ORDER BY user_id");
  5.         //显示管理员、编辑
  6.         //$editors = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 7 ORDER BY user_id");
  7.         //显示管理员、编辑、作者
  8.         //$authors = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 2 ORDER BY user_id");
  9.         //显示管理员、编辑、作者、投稿者
  10.         //$contributors = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 1 ORDER BY user_id");
  11.         //显示管理员、编辑、作者、投稿者、订阅者
  12.         //$subscribers = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 0 ORDER BY user_id");
  13.         foreach($administrators as $administrator){
  14.                 echo get_the_author_meta('display_name', $administrator).'<br />';
  15.         }
  16. ?>
复制代码
上面的代码通过判断函数筛选了各等级角色,最后通过foreach输出了权限最高的管理员,注释中分别是不同权限范围的用户。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|Archiver|手机版|小黑屋|信息共享网

GMT+8, 2024-5-15 21:33 , Processed in 0.076337 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表