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