描述

WP_User_Query是一个定义的类,wp-includes/user.php它允许查询WordPress数据库表' wp_users '和' wp_usermeta '。此类在3.1版中引入,因此WP_User_Search类已被弃用。

用法


<?php
$args = array(
	.
	.
	.
);

// The Query
$user_query = new WP_User_Query( $args );

// User Loop
if ( ! empty( $user_query->results ) ) {
	foreach ( $user_query->results as $user ) {
		echo '<p>' . $user->display_name . '</p>';
	}
} else {
	echo 'No users found.';
}
?>

方法和性质

属性
$ query_vars
解析后,包含查询变量及其相应值的关联数组。
$results
包含已找到用户列表的数组。
$total_users
当前查询的查找用户总数。
$ query_fields
返回字段的SQL子句。
$ query_from
SQL子句
$ query_where
SQL子句
$ query_orderby
用于排序检索用户的SQL子句。
$ query_limit
用于限制检索用户的SQL子句。

方法

get()
检索查询变量。
set()
设置查询变量。
get_results()
返回用户列表。
get_total()
返回当前查询的总用户数。

参数

用户角色参数
显示与某些角色相关联的用户。

role( string / array) - 使用 User Role。用户必须匹配的角色名称的数组或逗号分隔列表才能包含在结果中。请注意,这是一个包容性列表:用户必须匹配*每个*角色。默认为空。
role__in( array) - 一个角色名称数组。匹配的用户必须至少具有以下角色之一。默认空数组。(自 4.4版起)。
role__not_in( array) - 要排除的角色名称数组。匹配一个或多个这些角色的用户不会包含在结果中。默认空数组。(自 4.4版起)。

显示管理员角色用户
$ user_query = new WP_User_Query(array('role'=>'Administrator'));
显示订阅者角色用户

$ user_query = new WP_User_Query(array('role'=>'Subscriber'));
显示除用户角色用户之外的所有用户

$ user_query = new WP_User_Query(array('role__not_in'=>'Subscriber'));

包括和排除参数

显示特定用户。

include( array) - 要包括的用户列表。
exclude( array) - 要排除的用户列表。
显示特定用户列表
$ user_query = new WP_User_Query(array('include'=> array(1,2,3)));
显示除特定用户列表之外的所有用户
$ user_query = new WP_User_Query(array('exclude'=> array(4,5,6)));

博客参数

显示与网络上某个博客相关联的用户。

blog_id( int) -多站点环境中的博客ID。默认为当前博客ID。
从博客33显示用户
$ user_query = new WP_User_Query(array('blog_id'=> 33));

搜索参数

搜索用户

search( string) - 搜索列上可能的字符串匹配。字符串之前和/或之后的*通配符的使用将与以*开头的列匹配, *以*结尾,或 *包含*您输入的字符串。
search_columns( array) -数据库表列的列表,以匹配多个列的搜索字符串。
' ID ' - 按用户ID搜索。
' user_login ' - 按用户登录搜索。
' user_nicename ' - 按用户nicename搜索。
' user_email ' - 用户邮箱搜索。
' user_url ' - 用户搜索url。
我们可以使用user_search_columns过滤器来修改搜索列。

根据关键词搜索显示用户

$ user_query = new WP_User_Query(array('search'=>'Rami'));
根据关键字搜索显示用户,仅在登录和电子邮件列中


$ args = array(
	'search'=>'Rami',
	'search_columns'=> array('user_login','user_email')
); 
$ user_query = new WP_User_Query($ args);

分页参数

限制已检索用户。

number( int) - 最大返回的结果数(分页需要)。
offset( int) - 偏移返回的结果(分页需要)。
paged( int) - 与数字一起使用时,定义要返回的结果页面。默认值1.(自版本4.4)。
显示10位用户
$ user_query = new WP_User_Query(array('number'=> 10));
从25开始显示5个用户
$ user_query = new WP_User_Query(array('number'=> 5,'offset'=> 25));

Order & Orderby参数

排序检索用户。

orderby( string) - 按参数排序检索用户。默认为“登录”。
' ID ' - 按用户ID排序。
' display_name ' - 按用户显示名称排序。
' name '/' user_name ' - 按用户名排序。
' include ' - 由包含的user_ids列表排序(需要include参数)(自版本4.1起)。
' login '/' user_login ' - 按用户登录排序。
' nicename '/' user_nicename ' - 按用户nicename排序。
' email '/' user_email ' - 按用户电邮排序。
' url '/' user_url ' - 按用户url 排序。
' registered '/' user_registered ' - 按用户注册日期排序。
' post_count ' - 按用户发帖次数排序。
' meta_value ' - 请注意,查询中还必须存在'meta_key = keyname'(可用于版本3.7)。
' meta_value_num ' - 请注意,“meta_key = keyname”也必须存在于查询中(版本4.2可用)。
order( string) - 指定' orderby '参数的升序或降序。默认为“ASC”。
' ASC ' - 从最低到最高值(1,2,3,a,b,c)的升序。
' DESC ' - 从最高到最低值(3,2,1; c,b,a)的降序。

按照Post Count排序显示用户,按顺序排列
$ user_query = new WP_User_Query(array('orderby'=>'post_count','order'=>'DESC'));
按注册,升序排序显示用户
$ user_query = new WP_User_Query(array('orderby'=>'registered','order'=>'ASC'));