问题描述

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

例如,我已经选择为每个注册具有元键的用户添加自定义元数据作为 parent_id 。如果我想列出所有具有 parent_id 的用户都是 2,那我该怎么办?

最佳解决方案

由于 WP v3.1 是通过他/她的元键搜索用户很容易的。

使用该功能

get_users($args)

(WP Documentation)

该函数需要一系列参数,在您需要的情况下

get_users(array(‘meta_key’ => ‘parent_id’, ‘meta_value’ => ’42’))

次佳解决方案

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

$user = reset(
 get_users(
  array(
   'meta_key' => $meta_key,
   'meta_value' => $meta_value,
   'number' => 1,
   'count_total' => false
  )
 )
);

第三种解决方案

Here is the codex page from WordPress 详细介绍了如何使用 get_users($arg); 功能。

它包含如何构建自定义函数以获取用户数据的各个部分的示例。你必须自然地构建并做出一些你自己的改变,以获得你想要的。

另外 here is a link 是一个功能,可以根据 wordpress 中的角色来获取用户数据。您可以通过多种不同的方式对其进行配置,但这样可以以更强大的方式过滤您的结果。

第四种方案

以下是如何根据自定义角色和多个元数据键获取用户,

$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 检查我的开源

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。