WordPress通过元数据获取用户

WordPress get user by meta data

如何检索在WordPress博客中注册的具有特定元数据的所有用户?

例如,我为每个将元密钥设为parent_id的注册用户添加了一个自定义元数据的选项。 如果我要将具有parent_id的所有用户列出为2,那么该怎么做?


从WP v3.1开始,通过用户的元密钥来搜索用户非常容易。

使用功能

get_users($args)

(WP文档)

该函数需要一个参数数组,在您需要的情况下

get_users(array('meta_key' =>
'parent_id', 'meta_value' => '42'))


如何通过元数据获取一个用户的简单方法是:

1
2
3
4
5
6
7
8
9
10
$user = reset(
 get_users(
  array(
   'meta_key' => $meta_key,
   'meta_value' => $meta_value,
   'number' => 1,
   'count_total' => false
  )
 )
);


您可以通过以下方式根据自定义角色和多个元数据键来吸引用户,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$available_drivers = get_users(
            array(
                'role' => 'driver',
                'meta_query' => array(
                    array(
                        'key' => 'approved',
                        'value' => true,
                        'compare' => '=='
                    ),
                    array(
                        'key' => 'available',
                        'value' => true,
                        'compare' => '=='
                    )
                )
            )
        );

在解释以上查询时,我只需要分配了驱动程序角色的那些用户,这些用户可以被批准并且可以使用。批准的和可用的是使用ACF作为True / False字段创建的自定义字段。

如果您还有其他要测试的元数据,则将另一个数组元素添加到meta_query数组。

同时在github.com/patrickingle上查看我的开源代码


这是Wordpress的法典页面,详细介绍了如何使用get_users($arg);函数。

它包含一些示例,该示例说明了如何构建自定义函数来获取用户数据的各个部分。您必须自然地构建并进行一些自己的更改,以使其达到所需的效果。

另外,这里是指向某人构建的功能的链接,该功能将根据wordpress中的角色获取用户数据。您可以在tweeking中以多种不同的方式对其进行配置,但这将使您能够以更强大的方式过滤结果。