Подтвердить что ты не робот

WordPress получает пользователя по метаданным

Как я могу получить всех пользователей, зарегистрированных в моем блоге WordPress, с конкретными метаданными?

Например, я сделал вариант добавления настраиваемых метаданных для каждого пользователя, у которого есть мета-ключ как parent_id. Если я хочу перечислить всех пользователей с parent_id как 2, то как я могу это сделать?

4b9b3361

Ответ 1

Так как WP v3.1 смешно легко найти пользователя по его/ее мета-ключу.

Используйте функцию

get_users ($ арг)

(Документация WP)

Функция принимает массив параметров, в вашем случае вам нужно

get_users (массив ('meta_key' = > 'parent_id', 'meta_value' = > '42'))

Ответ 2

Простой способ получить одного пользователя по его метаданным:

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

Ответ 3

Вот страница codex из Wordpress, в которой подробно описывается использование функции get_users($arg);.

Он содержит примеры того, как создавать пользовательские функции для извлечения различных частей пользовательских данных. Вам нужно будет естественным образом построить и внести некоторые свои изменения, чтобы получить их, как вы хотите.

Дополнительно здесь ссылка на функцию, созданную кем-либо, которая будет извлекать пользовательские данные на основе ролей в wordpress. Вы можете настроить его разными способами с помощью tweeking, но это позволит вам более эффективно фильтровать ваши результаты.

Ответ 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.

В то же время проверяйте мой open source на github.com/patrickingle