Получение списка пользователей в 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() и способах ее использования. Вы можете адаптировать параметры в зависимости от ваших нужд.