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

38

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

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

Теги:

4 ответа

58

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

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

get_users ($ арг)

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

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

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

  • 0
    Отлично. Я пытался использовать опцию "meta_query", которая не работала. Это сработало отлично. Благодарю.
16

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

$user = reset(
 get_users(
  array(
   'meta_key' => $meta_key,
   'meta_value' => $meta_value,
   'number' => 1,
   'count_total' => false
  )
 )
);
  • 5
    Для тех, кому нужен только идентификатор пользователя. Добавьте аргумент массива 'fields' => 'ids' . Это сделает запрос более легким.
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

4

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню