問題描述

如何檢索在我的 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。