WordPress函数:get_users 用户查询与搜索

江河/ 2023年07月26日/ WordPress/ 浏览 1148

函数原型:


get_users( array $args = array() ): array


检索匹配条件的用户列表。


参数说明:


$args


 - blog_id 站点ID。默认为当前站点。


 - role 用户必须匹配才能包含在结果中的角色名称的数组或逗号分隔列表。请注意,这是一个包含列表:用户必须匹配*每个*角色。


 - role__in 角色名称的数组。匹配的用户必须至少具有其中一个角色。


 - role__not_in 要排除的角色名称的数组。与其中一个或多个角色匹配的用户将不会包括在结果中。


 - meta_key 要筛选的一个或多个元键。


 - meta_value 要筛选的一个或多个元值。


 - meta_compare 用于比较元值的MySQL运算符。


 - meta_compare_key 用于比较元密钥的MySQL运算符。 


 - meta_type meta_value列将被CAST转换为用于比较的MySQL数据类型。


 - meta_type_key meta_key列将被CAST转换为用于比较的MySQL数据类型。


  - meta_query An associative array of WP_Meta_Query arguments.


 - capability 用户必须匹配才能包含在结果中的功能名称的数组或逗号分隔列表。请注意,这是一个包含列表:用户必须匹配*each*功能。不适用于不在数据库中或通过“map_meta_cap”筛选的功能。


 - capability__in 一组功能名称。匹配的用户必须至少具有其中一种功能。不适用于不在数据库中或通过“map_meta_cap”筛选的功能。


 - capability__not_in 要排除的功能名称的数组。匹配其中一个或多个功能的用户将不会包含在结果中。不适用于不在数据库中或通过“map_meta_cap”筛选的功能。


 - include 要包括的用户ID的数组。


 - exclude 要排除的用户ID的数组。


 - search 搜索关键字。在列上搜索可能匹配的字符串。当$search_columns为空时,它会尝试根据搜索字符串确定要搜索的列。


 - search_columns 要搜索的列名数组。接受ID、user_login、user_email、user_url、user_nicename和display_name。


 - orderby


要对检索到的用户进行排序的字段。可以是单个值、值数组或以字段为键、以顺序('ASC'或'DESC')为值的多维数组。接受的值为:'ID','display_name'(或'name')、'include'、'user_login'(或'login')、'login__in'、'user_nicename'(或'nicename'),'nicename__in','user_email(或'email'),'user_url'(或'url'),'user_registered'(或'registered'),'post_count','meta_value','meta_value_num',$meta_key的值,$meta_query的数组键若要使用“meta_value”或“meta_vvalue_num”,还必须定义$meta_key。默认值“user_login”。


 - order 指定用户的升序或降序。作为$orderby数组的一部分传递的顺序值优先于此参数。接受“ASC”、“DESC”。默认为“ASC”。


 - offset 要在检索到的结果中偏移的用户数。可以与分页一起使用。默认为0。


 - number 要限制查询的用户数。可以与分页一起使用。支持值-1(all),但在较大的站点上应谨慎使用。默认值-1(所有用户)。


 - paged 与数字一起使用时,定义要返回的结果页面。默认值1。


 - count_total 是否计算找到的用户总数。如果不需要分页,将其设置为false可以提高性能。默认为true。


 - fields 要返回的字段。单个或所有字段(字符串),或字段数组。接受:'ID'、'display_name'、'user_login'、'user_nicename'、'user_email'、'user_url'、'user_registered'、'user_pass'、'user_activation_key'、'user_status'、'spam' (only available on multisite installs)、'deleted' (only available on multisite installs)、'all' for all fields and loads user meta.、'all_with_meta' Deprecated. Use 'all'. 默认:all。


 - who 要查询的用户类型。接受“作者”。默认为空(所有用户)。


 - has_published_posts 传递一个帖子类型数组,以将结果筛选给已在这些帖子类型中发布帖子的用户。true是所有公共帖子类型的别名。


 - nicename 用户的昵称


 - nicename__in 要包含的一组昵称。匹配其中一个昵称的用户将被包括在结果中。


 - nicename__not_in 要排除的细节名称数组。与其中一个昵称匹配的用户将不会包含在结果中。


 - login 用户登录名


 - login__in 要包括的登录名数组。匹配其中一个登录名的用户将包括在结果中。


 - login__not_in 要排除的登录名数组。与其中一个登录名匹配的用户将不会包括在结果中。


返回值是ID、stdClass对象或WP_User对象的数组,具体取决于“fields”参数的值。


如果“fields”设置为“all”(默认值)或“all_with_meta”,它将返回一个WP_User对象数组。


如果将“fields”设置为wp_users表字段的数组,则它将返回一个仅包含这些字段的stdClass对象数组。


如果将“fields”设置为任何单独的wp_users表字段,则将返回一个ID数组。


函数源码:


function get_users( $args = array() ) {

	$args                = wp_parse_args( $args );
	$args['count_total'] = false;

	$user_search = new WP_User_Query( $args );

	return (array) $user_search->get_results();
}


使用举例:


$blogusers = get_users( array( 'role__in' => array( 'author', 'subscriber' ) ) );
// Array of WP_User objects.
foreach ( $blogusers as $user ) {
    echo '<span>' . esc_html( $user->display_name ) . '</span>';
}


发表评论

暂无评论,抢个沙发...

客服 工单