日期参数

日期查询通过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参数更改为“%%”。因此,在自定义字段值的任意位置搜索字符串。如果value参数包含'%',则它将被转义。所以它禁止搜索一些以某些字符开头的字符串,例如...要构造这个查询,你必须在value参数中使用正则表达式的'REGEXP'(例如:'^ n。*'匹配所有以“ n“或”N“)。
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';
}