日期参数
日期查询通过WP_Date_Query对象处理,并应用于user_registered字段。
自版本4.1起可用。
date_query( array) - 查看 WP_Query类的文档。
查找过去12小时内注册的用户:
$ args = array(
'date_query'=> array(
array('after'=> '12 hours ago','inclusive'=> true)
)
);
$ user_query = new WP_User_Query($ args);
自定义字段参数
显示与某个自定义字段关联的用户。
该WP_Meta_Query类用于解析查询的这个部分,因为3.2.0,因此检查文档该类为全面,最新的参数列表。
meta_key( string) - 自定义字段键。
meta_value( string) - 自定义字段值。
meta_compare( string) - 运算符来测试' meta_value '。请参见下面的 “比较”。
meta_query( array) - 自定义字段参数(版本3.5可用)。
键(字符串) - 自定义字段键。
value( string | array) - 自定义字段值(注意:数组支持仅限于比较值'IN','NOT IN','BETWEEN','NOT BETWEEN','EXISTS'或'NOT EXISTS')
compare( string) - 运算符进行测试。可能的值为'=','!=','>','> =','<','<=','LIKE','NOT LIKE','IN','NOT IN','BETWEEN ','不是','现在'和'不存在'; 在WordPress 3.7中添加了“REGEXP”,“NOT REGEXP”和“RLIKE”。默认值为'='。
注:目前, “NOT EXISTS”并不总是工作打算,如果 “关系”是 “或”使用时,(1)在 “角色”参数在单个站点安装,或(2)在多站点的任何查询。见票号23849。
笔记2:使用“LIKE”,value参数更改为“%
type( string) - 自定义字段类型。可能的值为'NUMERIC','BINARY','CHAR','DATE','DATETIME','DECIMAL','SIGNED','TIME','UNSIGNED' 默认值为“CHAR”。您还可以为'DECIMAL'和'NUMERIC'类型指定精度和比例(例如,'DECIMAL(10,5)'或'NUMERIC(10)')有效)。
显示来自以色列的用户
$ user_query = new WP_User_Query(array('meta_key'=>'country','meta_value'=>'Israel'));
显示30岁以下的用户
$ user_query = new WP_User_Query(array('meta_key'=>'age','meta_value'=>'30','meta_compare'=>'<'))
多个自定义用户字段处理
$ args = array(
'meta_query'=> array(
'relation'=>'OR',
array(
'key'=>'country',
'value'=>'Israel',
'compare'=>'='
) ,
array(
'key'=>'age',
'value'=> array(20,30),
'type'=>'numeric',
'compare'=>'BETWEEN'
)
)
);
$ user_query = new WP_User_Query($ args);
谁参数
哪些用户?
who( string) - 哪些用户要查询。目前只支持“作者”。默认是所有用户。
仅显示作者
$ user_query = new WP_User_Query(array('who'=>'authors'));
等于:
$ args = array(
'meta_key'=>'user_level',
'meta_value'=>'0',
'meta_compare'=>'!=',
'blog_id'=> 0
)
$ user_query = new WP_User_Query($ args);
总计数参数
count_total( boolean) - 是否计算找到的用户总数。当为 true(默认值)时,可以使用 get_total()方法检索查询结果总数。如果您不需要总结果数,请将其设置为 false。
已发布职位参数
has_published_posts( boolean / array) - 传递一个帖子类型数组,以过滤结果给已经发布了这些帖子类型的帖子的用户。true是所有公共帖子类型的别名。默认值为 null。自 4.3版起。
返回字段参数
设置返回值。
fields( string | array) - 要返回的字段。默认为全部。
' ID ' - 返回一个用户标识的数组。
' display_name ' - 返回一组用户显示名称。
' login '/' user_login ' - 返回一组用户登录名。
' nicename '/' user_nicename ' - 返回一系列用户nicenames。
' email '/' user_email ' - 返回一组用户电子邮件。
' url '/' user_url ' - 返回一个用户url数组。
' registered '/' user_registered ' - 返回用户注册日期的数组。
' all(default)或all_with_meta ' - 返回一个WP_User对象数组。必须将数组传递给返回的子集字段。*'all_with_meta'当前返回与“all”相同的字段,不包括存储在wp_usermeta中的用户字段。您必须创建第二个查询以通过ID获取用户元字段,或使用__get PHP魔术方法获取这些字段的值。
返回一个WP_User对象数组
$ user_query = new WP_User_Query(array('role'=>'editor','fields'=>'all'));
返回列出所有博客编辑器,返回限制字段的结果行对象:
$ user_fields = array('user_login','user_nicename','user_email','user_url');
$ user_query = new WP_User_Query(array('role'=>'editor','fields'=> $ user_fields));
返回值
(阵列)
ID,stdClass对象或WP_User对象的数组,具体取决于' fields '参数的值。
如果' fields '设置为'all'(默认)或'all_with_meta',它将返回一个WP_User对象的数组(即使使用'all_with_meta'集也不包括相关的用户元字段)。
如果' fields '设置为一个wp_users表字段的数组,它将返回一个只有这些字段的stdClass对象的数组。
如果' fields '设置为任何单独的wp_users表字段,将返回一个ID数组。
过滤器
found_users_query - 将SQL“SELECT FOUND_ROWS()'子句更改为返回计数总计的查询。
例子
如果要通过first_name / last_name / description和默认的search_columns搜索用户,这是一个工作示例。
// 搜索项
$search_term = 'Ross';
// WP_User_Query参数
$args = array (
'role' => 'reporter',
'order' => 'ASC',
'orderby' => 'display_name',
'search' => '*'.esc_attr( $search_term ).'*',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'first_name',
'value' => $search_term,
'compare' => 'LIKE'
),
array(
'key' => 'last_name',
'value' => $search_term,
'compare' => 'LIKE'
),
array(
'key' => 'description',
'value' => $search_term ,
'compare' => 'LIKE'
)
)
);
// 创建WP_User_Query对象
$wp_user_query = new WP_User_Query($args);
// 获取结果
$authors = $wp_user_query->get_results();
// 检查结果
if (!empty($authors)) {
echo '<ul>';
// 循环遍历每个作者
foreach ($authors as $author)
{
// 获取所有用户的数据
$author_info = get_userdata($author->ID);
echo '<li>' . $author_info->first_name . ' ' . $author_info->last_name . '</li>';
}
echo '</ul>';
} else {
echo 'No authors found';
}

