Функция get_current_user_id()
возвращает ID текущего авторизованного пользователя в WordPress. Если пользователь не авторизован, функция вернет 0
.
get_current_user_id(): int
Возвращаемое значение:
- int — ID текущего пользователя.
- Если пользователь не авторизован, функция возвращает
0
.
Пример 1: Получение ID текущего пользователя
Если пользователь авторизован, с помощью этой функции можно получить его ID и использовать его в дальнейшем коде.
$cur_user_id = get_current_user_id();
if ( $cur_user_id ) {
echo 'ID текущего пользователя: ' . $cur_user_id;
} else {
echo 'Пользователь не авторизован.';
}
Результат:
Если пользователь авторизован, выведет его ID. Если нет — сообщение, что пользователь не авторизован.
Пример 2: Вывод ID текущего пользователя (с проверкой авторизации)
Можно использовать функцию в сочетании с is_user_logged_in()
, чтобы вывести ID только для авторизованных пользователей:
if ( is_user_logged_in() ) {
echo 'ID пользователя: ' . get_current_user_id();
} else {
echo 'Привет, гость!';
}
Результат:
Если пользователь вошел в систему, будет выведен его ID. В противном случае — сообщение для гостей.
Пример 3: Использование внутри хука init
Если нужно выполнить действия с ID пользователя внутри плагина или темы, это следует делать после инициализации WordPress (например, в хук init
):
function my_custom_function() {
$user_id = get_current_user_id();
if ( $user_id ) {
// Дополнительные действия
echo 'ID текущего пользователя: ' . $user_id;
}
}
add_action( 'init', 'my_custom_function' );
Результат:
Функция выполнится после полной загрузки системы, и если пользователь авторизован, выведет его ID.
Пример 4: Получение роли текущего пользователя
Для того чтобы получить роль текущего пользователя, сначала нужно получить его объект с помощью wp_get_current_user()
или WP_User
:
$user = wp_get_current_user();
if ( ! empty( $user->roles ) ) {
echo 'Роль пользователя: ' . $user->roles[0];
}
Результат:
Будет выведена роль текущего пользователя, например: administrator
, editor
, subscriber
.
Пример 5: Использование ID текущего пользователя в WP_Query
Вы можете использовать get_current_user_id()
в запросах WordPress, например, чтобы получить посты, созданные текущим пользователем:
$query = new WP_Query( array(
'author' => get_current_user_id(),
'post_status' => 'draft'
) );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
the_title();
}
} else {
echo 'Черновики отсутствуют.';
}
Результат:
Будет выведен список черновиков, написанных текущим авторизованным пользователем.
Пример 6: Использование в REST API
Если REST запрос не авторизован, get_current_user_id()
вернет 0
. Чтобы авторизовать запрос, можно использовать nonce-код:
// Пример авторизованного REST запроса:
$cur_user_id = get_current_user_id();
if ( $cur_user_id ) {
echo 'ID пользователя через REST API: ' . $cur_user_id;
} else {
echo 'Не авторизован!';
}
Важные моменты:
- Функция возвращает 0, если пользователь не авторизован.
- Она должна использоваться после инициализации WordPress (например, в хуках
init
,wp_loaded
), чтобы гарантировать правильную работу. - Функция полезна для получения информации о текущем пользователе в плагинах, темах, REST API, а также в пользовательских запросах (например, для фильтрации постов по автору).
Заключение
Функция get_current_user_id()
— это простой способ получения ID авторизованного пользователя в WordPress. Она полезна для проверки авторизации, работы с пользовательскими данными и выполнения операций, требующих идентификации пользователя.