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.

Замена функции (переопределение) — в must-use или обычном плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.

Работает на основе: get_user_by()
1 раз — 0.000296 сек (быстро) | 50000 раз — 0.78 сек (очень быстро) | PHP 7.1.2RC1, WP 4.7.2

Хуков нет.

Возвращает

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 пользователя, данные которого нужно получить.

Примеры

0

#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
*/
0

#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
)
*/
0

#3 Методы класса

Получаемый объект с помощью get_userdata() - это экземпляр класса и у него есть методы, которые можно использовать. Иногда это может пригодится. Вот простой пример получения опции пользователя, с помощью метода $user->get():

$user = get_userdata(1);
echo $username = $user->get('user_login');

Список некоторых методов:

Функция Описание
WP_User::get( $key ) Retrieves the value of a property or meta key.
WP_User::has_prop( $key ) Determines whether a property or meta key is set.
WP_User::has_cap( $cap, ...$args ) Returns whether the user has the specified capability.
WP_User::get_role_caps( ) Retrieves all of the capabilities of the user's roles, and merges them with individual user capabilities.
WP_User::add_role( $role ) Adds role to user.
WP_User::remove_role( $role ) Removes role from user.
WP_User::set_role( $role ) Sets the role of the user.

Список изменений

С версии 0.71 Введена.

Код get_userdata() WP 6.6.2

function get_userdata( $user_id ) {
	return get_user_by( 'id', $user_id );
}