其实判断 WordPress 用户角色和权限是非常少用的,对于普通的 WordPress 博主而言,可能这个功能不太常用,但是开放注册的 WordPress 而言,这个功能可能就会用到了。而子凡也就是因为需要做用户数据的整合及同步W N C z g , L,在昨天子凡就发过一篇博客《WordPress 数据库整合导致后台登录无权限解决方法》,其中就涉及到了 WordPress 用户的权限问题,所以这里整理了一篇比较全面的文章,大家可以参考学习了解一下。
首先了解一下 WordPress 不? - x [ x同用户、不) Q b p j同角色的各级权限。在 WordPress 默认中,分五种角色(管理员、编辑、作者、投稿者、订阅者)和 11 种权限(level_0 ~ level_10),其中:
管理员拥Y y C有最高权限(level_0 ~ level_10)
编辑次之(level_0 ~ level_7)
再是作者(level_0 ~ level_2)
然后是投稿者(level_0 ~ level_1)
最后是订阅者(level= % ` f_0)
在数据库中,关于权限的字段位于数据库中 wp_usermeta 表中的 meta_value,所以这个判断函数可以这么F Y c M e & W写:
- <?php
- global $w4 8 m ~ Gpdb;
- //显示管理员
- $administrators = $wpdb->get_col("SELECT user_id FROM $t o } : = Z _ : .wpdb->usermeta WHo @ + K \ tERE meta_key = 'wp_usery c D w / { h \_level' AND meta_value = 10 ORDER BY userL x [ y 8 \_id");
- //显示管理员、编辑
- $eE p 8 ( F l gditors = $wpdb->get_colI r k 8 J =040;"4 S 0 k;SELECT userU T X l h_id FROM $wpdb->usermeta WHERE meta_key = 'wp_userb W 3 J U N b e n_level' AND me} 9 P 3ta_value >= 7 ORDER BY user_id");
- //显示管理员、编辑、作者
- $authors = $wpdb->get_col("SELECT user_id FROM $. + Vwpdb->usermeta WHERE meta_key = 'wp_user_level' AN9 Q q Z vD meta_value >= 2 ORDER BY user_id");8 9 X d d
- //显示管理员、编辑、作者、投稿者
- $contrib? h i ` [utors = $s n u 8 d ;wpdb->get_colh \ b J s V e0;"SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= 1 ORDER BYC 4 u m user_id")\ - g;
以上示例中只输出权限最高的管理员用户,大家都自己发挥吧!注释都写明了相L t d J = 9关的权限和角色。