get_userdata() WP 0.71
Получает данные указанного пользователя в виде объекта WP_User.
Данные, возвращаемые функций полностью соответствуют полям таблиц БД: wp_users и wp_usermeta. Оописание таблиц см. тут.
Некоторые полезные значения полей таблиц wp_users и wp_usermeta, которые вы можете использовать для получения данных:
users ID user_login user_pass user_nicename user_email user_url user_registered display_name user_meta user_firstname user_lastname nickname user_description wp_capabilities Массив admin_color Тема админ-панели. По умолчанию: свежая (fresh) closedpostboxes_page primary_blog rich_editing source_domain
Это pluggable функция — т.е. её можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.
Замена функции (переопределение) — в плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.
Хуков нет.
Возвращает
WP_User/false. Объект данных WP_User. false — если не удалось найти указанного пользователя.
С версии 3.2 возвращаемые данные немного изменились: возвращается объект WP_User. Данные в объекте разбиваются на группы: data, caps, roles (раньше данные возвращались в общем списке). Однако, благодаря "волшебным" (служебным) методам PHP, данные можно получить как и прежде. Например, сейчас данные хранятся так: get_userdata()->data->rich_editing, но получить их можно так: get_userdata()->rich_editing, несмотря на то, что var_dump() не покажет эту взаимосвязь.
Использование
get_userdata( $user_id );
- $user_id(число) (обязательный)
- ID пользователя, данные которого нужно получить.
Примеры
#1 Как выводить данные из полученного объекта данных
$user_info = get_userdata(1); echo 'Имя пользователя: ' . $user_info->user_login . "\n"; echo 'Уровень доступа: ' . $user_info->user_level . "\n"; echo 'ID: ' . $user_info->ID . "\n"; /* Выведет: Имя пользователя: admin Уровень доступа: 10 ID: 1 */
#1.2 Данные в переменную
Еще одни пример, только тут запишем данные сначала в переменные, а затем выведем из на экран:
$user = get_userdata( 1 ); $username = $user->user_login; $first_name = $user->first_name; $last_name = $user->last_name; echo "$first_name $last_name зашел(а) на сайт под логином: $username."; /* Объект $user: WP_User Object( [data] => stdClass Object( [ID] => 80 [user_login] => kogian [user_pass] => $P$BJFHKJfUKyWv1TwЛОВАЕnYU0JGNsq. [user_nicename] => kogian [user_email] => kogian@yandex.ru [user_url] => http://example.com/ [user_registered] => 2016-09-01 00:34:42 [user_activation_key] => [user_status] => [display_name] => kogian ) [ID] => 80 [caps] => Array( [subscriber] => 1 ) [cap_key] => wp_capabilities [roles] => Array( [0] => subscriber ) [allcaps] => Array( [read] => 1 [level_0] => 1 [subscriber] => 1 ) [filter] => [site_id:WP_User:private] => 1 ) */
#2 Методы класса
Получаемый объект с помощью get_userdata() - это экземпляр класса и у него есть методы, которые можно использовать. Иногда это может пригодится. Вот простой пример получения опции пользователя, с помощью метода $user->get():
$user = get_userdata(1); echo $username = $user->get('user_login');
Список некоторых методов:
- get( $key ) - вернет значение опции;
- has_prop( $key ) - проверяет установлена ли указанная опция;
-
has_cap( $cap ) - проверяет имеет ли пользователь указанную возможность или роль;
- get_role_caps() - получает все возможности роли пользователя и объединяет их с индивидуальными возможностями пользователя;
- add_role( $role ) - добавляет роль к пользователю;
- remove_role( $role ) - удаляет роль у пользователя;
- set_role( $role ) - устанавливает роль пользователя;
Список изменений
С версии 0.71 | Введена. |
Код get_userdata() get userdata WP 5.6.2
function get_userdata( $user_id ) {
return get_user_by( 'id', $user_id );
}