Как я могу получить всех пользователей, зарегистрированных в моем блоге WordPress, с конкретными метаданными?
Например, я сделал вариант добавления настраиваемых метаданных для каждого пользователя, у которого есть мета-ключ как parent_id
. Если я хочу перечислить всех пользователей с parent_id
как 2
, то как я могу это сделать?
Так как WP v3.1 смешно легко найти пользователя по его/ее мета-ключу.
Используйте функцию
get_users ($ арг)
Функция принимает массив параметров, в вашем случае вам нужно
get_users (массив ('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
)
)
);
'fields' => 'ids'
. Это сделает запрос более легким.
Вот как вы можете получить пользователей на основе пользовательской роли и нескольких ключей метаданных,
$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.
В то же время проверяйте мой open source на github.com/patrickingle
Вот страница codex из Wordpress, в которой подробно описывается использование функции get_users($arg);
.
Он содержит примеры того, как создавать пользовательские функции для извлечения различных частей пользовательских данных. Вам нужно будет естественным образом построить и внести некоторые свои изменения, чтобы получить их, как вы хотите.
Дополнительно здесь ссылка на функцию, созданную кем-либо, которая будет извлекать пользовательские данные на основе ролей в wordpress. Вы можете настроить его разными способами с помощью tweeking, но это позволит вам более эффективно фильтровать ваши результаты.