2011-05-24 85 views
39

如何檢索在我的WordPress博客中註冊的具有特定元數據的所有用戶?WordPress通過元數據獲取用戶

例如,我已經爲每個註冊用戶添加了一個自定義元數據,該元數據爲parent_id。如果我想列出parent_id2的所有用戶,那我該怎麼做?

回答

57

由於WP v3.1通過他/她的元鍵來搜索用戶是非常容易的。

使用功能

get_users($參數)

WP Documentation

該函數的參數數組,你的情況,你需要

get_users(array('meta_key'=> 'parent_id','meta_值'=>'42'))

+0

優秀。我試圖使用「meta_query」選項,該選項不起作用。這工作完美。謝謝。 – Jake 2012-08-09 10:31:49

4

Here is the codex page from Wordpress詳細說明如何使用get_users($arg);函數。

它包含了如何構建自定義函數以獲取用戶數據的各個部分的示例。您必須自然地構建並進行一些自己的更改才能獲得您想要的結果。

此外here is a link有人建立的功能,將基於wordpress中的角色獲取用戶數據。你可以用許多不同的方式配置它,但這可以讓你以更強大的方式過濾結果。

17

簡單方式如何通過自己的元數據,以得到一個用戶:

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

對於只需要用戶標識的人。添加一個數組參數''fields'=>'ids''。這將使查詢更輕量。 – Sisir 2015-03-03 06:39:34

4

這裏是你如何可以根據自定義角色和多個元數據鍵讓用戶,

$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