Получение списка пользователей в WordPress: функция `get_users()`详

Получение списка пользователей в WordPress с помощью функции get_users()

Функция get_users() в WordPress позволяет получить список пользователей в зависимости от переданных параметров. Она работает на основе класса WP_User_Query и может использоваться для различных задач, связанных с пользователями.

Возвращаемые значения

Функция возвращ��ет массив, который может содержать:

  • WP_User объекты — если указано fields => 'all' (по умолчанию)
  • stdClass объекты — если указано fields с конкретными значениями
  • Массив идентификаторов пользователей — если указано fields => 'ID'

Примеры возвращаемых данных

1. WP_User объекты

Если вы выбираете все данные пользователя:

Array (
    [0] => WP_User Object(
        [ID] => 30
        [data] => stdClass Object (
            [ID] => 29
            [user_login] => -
            [user_pass] => $P$B.ogb6EOfaEVc5hSif/XuAuE4RfSzV1
            [user_nicename] => rudkij-nik
            [user_email] => user@example.com
            [user_registered] => 2020-11-08 13:45:04
            [display_name] => Rudkov Niko
        )
        ...
    )
)

2. stdClass объекты с определенными полями

Если выбираете только определенные поля:

Array (
    [0] => stdClass Object (
        [user_nicename] => rudkovskij-nikolaj
    )
)

3. Массив идентификаторов

Если хотите только идентификаторы пользователей:

Array (
    [0] => 29
    [1] => 31
    [2] => 17
)

Как использовать get_users()

Шаблон использования

Вот базовый шаблон для использования функции:

$users = get_users( [
    'blog_id'      => $GLOBALS['blog_id'],
    'role'         => '',
    'role__in'     => array(),
    'role__not_in' => array(),
    'meta_key'     => '',
    'meta_value'   => '',
    'meta_compare' => '',
    'meta_query'   => array(),
    'include'      => array(),
    'exclude'      => array(),
    'orderby'      => 'login',
    'order'        => 'ASC',
    'offset'       => '',
    'search'       => '',
    'search_columns' => array(),
    'number'       => '',
    'paged'        => 1,
    'fields'       => 'all',
    'who'          => '',
    'has_published_posts' => null,
    'date_query'   => array()
] );

foreach( $users as $user ){
    // Обработайте пользователя
}

Параметры функции

Функция принимает массив параметров $args, описанных далее:

  • blog_id (число) — ID текущего блога (для мультиметаданных).
  • role (строка/массив) — роли пользователей, которые вы хотите получить.
  • number (число) — количество пользователей, которых нужно получить.
  • search (строка) — строка для поиска пользователей по имени, ID или email.
  • fields (строка/массив) — какие поля вернуть (например, user_email).

Примеры использования

Пример 1: Получение списка всех подписчиков

$blogusers = get_users( 'blog_id=1&orderby=nicename&role=subscriber' );
foreach ( $blogusers as $user ) {
    echo '
  • ' . $user->user_email . '
  • '; }

    Пример 2: Использование параметра 'search'

    $blogusers = get_users( 'search=john' );
    foreach ($blogusers as $user) {
        echo '
  • ' . $user->user_email . '
  • '; }

    Пример 3: Поиск с использованием символа '*'

    $blogusers = get_users( 'search=jo*' );
    foreach ( $blogusers as $user ) {
        echo '
  • ' . $user->user_email . '
  • '; }

    При��ер 4: Получение email всех администраторов

    $users = get_users( [
        'role' => 'administrator',
        'fields' => ['user_email'],
    ] );
    
    $emails = wp_list_pluck( $users, 'user_email' );
    
    /* $emails будет содержать массив email-адресов администраторов */

    Заметки

    • Используйте фильтры и хуки WordPress для расширения функциональности функции get_users(), если это необходимо.

    Изменения в версии

    • Функция была введена в версии 3.1.0 WordPress.

    Эта статья дает общее представление о функции get_users() и способах ее использования. Вы можете адаптировать параметры в зависимости от ваших нужд.

    Leave a Reply

    Ваш адрес email не будет опубликован. Обязательные поля помечены *