# Функция wp_get_current_user()
Функция wp_get_current_user() позволяет получить информацию о текущем авторизованном пользователе в WordPress. Если пользователь еще не был задан, функция устанавливает его значение.
При первом вызове функции устанавливается текущий пользователь, и его данные сохраняются в глобальной переменной $current_user. Если пользователь не авторизован, функция вернет пустой объект пользователя.
## Как использовать
Эту функцию можно использовать только после срабатывания действия plugins_loaded. Если вы попытаетесь вызвать ее раньше, получите фатальную ошибку. Также функция вернет 0, если она будет вызвана в неавторизованном REST-запросе. Один из способов авторизовать REST-запрос — указать nonce-код.
### Пример использования с REST
```php
// Настройте зависимости, если необходимо вызвать эту функцию раньше.
wp_cookie_constants();
require ABSPATH . WPINC . '/pluggable.php';
// Получение текущего пользователя
$cuser = wp_get_current_user(); // Объект WP_User
Получение ID текущего пользователя
Когда вам нужно получить ID текущего пользователя, используйте функцию get_current_user_id():
$current_user_id = get_current_user_id();
$current_user = wp_get_current_user();
ID текущего пользователя определяется с помощью следующих функций:
wp_validate_auth_cookie()wp_validate_logged_in_cookie()
Заметка о заменяемой функции
Функция является заменяемой (pluggable). Это значит, что вы можете создать функцию с таким же именем в своем плагине, чтобы заменить ее. Однако, она будет работать только после загрузки всех плагинов.
function wp_get_current_user() {
return _wp_get_current_user();
}
Как проверить авторизацию пользователя
Чтобы проверить, авторизован ли пользователь, лучше использовать следующую конструкцию:
if ( wp_get_current_user()->exists() ) {
echo 'Авторизован!';
} else {
echo 'Не авторизован!';
}
Или можно использовать функцию is_user_logged_in():
if ( is_user_logged_in() ) {
echo 'Авторизован!';
}
Примеры использования
Получение информации о текущем пользователе
$current_user = wp_get_current_user();
echo 'Имя пользователя: ' . $current_user->user_login . '
';
echo 'Email: ' . $current_user->user_email . '
';
echo 'Имя: ' . $current_user->user_firstname . '
';
echo 'Фамилия: ' . $current_user->user_lastname . '
';
echo 'Отображаемое имя: ' . $current_user->display_name . '
';
echo 'ID: ' . $current_user->ID . '
';
Получение ID пользователя
Если вам нужно только узнать ID текущего пользователя:
$current_user_id = get_current_user_id();
Проверка авторизации
Использовать wp_get_current_user() для проверки авторизации не совсем корректно, поскольку функция может вернуть пустой объект. Вместо этого лучше использовать:
if ( is_user_logged_in() ) {
echo 'Авторизован!';
} else {
echo 'Не авторизован!';
}
Примечания
- Функция
_wp_get_current_user()используется вwp_get_current_user(). - Глобальная переменная
$current_userпроверяет, установлен ли текущий пользователь.
Изменения
Функция была введена в версии 2.0.3.
Связан��ые функции
get_current_user_id()is_user_logged_in()wp_set_current_user()
Здесь представлена улучшенная версия статьи с объяснениями на понятном языке и примерами. Структура сохранена и чётко организована, чтобы пользователи могли легко понять информацию о функции wp_get_current_user().