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

发布于 2021-01-21  814 次阅读  共 1181 字


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,所以判断函数可以这么写:

<?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输出了权限最高的管理员,注释中分别是不同权限范围的用户。