WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

wp_get_current_user() WP 2.0.4

Получает данные о текущем авторизованном пользователе (объект WP_User). Устанавливает текущего пользователя, если не установлен.

Ищем WP-разработчика! Фулл-тайм, удаленка, хорошая зарплата, соц. пакет. Подробности.
Компания Boosta.

ID текущего пользователя определяется функциям:

Функцию можно использовать с события plugins_loaded. Если вызвать её раньше, то мы получим fatal error.

Если очень нужно вызвать функцию до события plugins_loaded, то нужно предварительно подключить зависимости:

// зависимости
wp_cookie_constants();
require ABSPATH . WPINC . '/pluggable.php';

$cuser = wp_get_current_user(); //> WP_User object

Однако делать это нужно с полным пониманием того как работает авторизация.

Это pluggable функция — т.е. её можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.

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

1 раз — 0.00001 сек (скорость света) | 50000 раз — 0.03 сек (скорость света)

Хуков нет.

Возвращает

WP_User. Объект WP_User.

Если пользователь не авторизован, вернет пустой объект! Т.е. Нельзя проверять авторизован ли пользователь через эту функцию:

if( wp_get_current_user() ){
	echo 'эта строка будет выводиться всегда!';
}

// Нужно так:
if( wp_get_current_user()->exists() ){
	echo 'Авторизован!';
}

// или так:
if( is_user_logged_in() ){
	echo 'Авторизован!';
}

Использование

wp_get_current_user();

Примеры

#1. Проверим авторизован ли пользователь на сайте

Проверим авторизован (залогинен) ли пользователь. Если пользователя не существует, его ID будет равен 0:

$current_user = wp_get_current_user();
if( $current_user->exists() ){
	// Авторизован.
}
else {
	// Не авторизован.
}

Но лучше использовать для этих целей is_user_logged_in().

#2. Получим данные текущего пользователя

Выведем на экран различные данные о текущем авторизованном пользователе:

$current_user = wp_get_current_user();

echo 'Username: '         . $current_user->user_login     . '<br />';
echo 'email: '            . $current_user->user_email     . '<br />';
echo 'first name: '       . $current_user->user_firstname . '<br />';
echo 'last name: '        . $current_user->user_lastname  . '<br />';
echo 'Отображаемое имя: '   . $current_user->display_name   . '<br />';
echo 'ID: '               . $current_user->ID             . '<br />';

Заметки

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

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

Код wp_get_current_user() WP 5.8.2

function wp_get_current_user() {
	return _wp_get_current_user();
}

Пользователи (_user)

Остальное

17 комментов
Полезные 3 Вопросы 1 Все
    Войти