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

前几天给客户仿制一个模板,其中网页底部调用显示网站注册用户中的管理员和编辑两个角色,wordpress系统默认的用户角色有管理员、编辑、作者、投稿者以及订阅者,每个角色的权限等级不一样,要想仅仅调用用户中的管理员和编辑两个角色,可以通过判断各角色的权限等级筛选,然后调用数据!由于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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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 />';
	}
?>

上面的代码通过判断函数筛选了各等级角色,最后通过foreach输出了权限最高的管理员,注释中分别是不同权限范围的用户。

代码来自:Life Studio

网友留言:

  1. 2016-01-29回复

    怎么样才能获取对应的权限数字啊

发表留言