Функция wp_loginout()
используется для вывода ссылки на вход (если пользователь не авторизован) или выхода (если пользователь авторизован). Она полезна для создания динамических навигационных элементов в темах WordPress.
wp_loginout( string $redirect = '', bool $display = true ): void|string
Описание
Функция wp_loginout()
автоматически генерирует ссылку на вход или выход из системы в зависимости от текущего состояния авторизации пользователя. Если пользователь не авторизован, будет показана ссылка на страницу входа. Если пользователь уже вошел, то будет предложена ссылка на выход.
Параметры
- $redirect (строка, необязательный)
URL-адрес, на который пользователь будет перенаправлен после входа или выхода.
По умолчанию:''
. - $display (логический, необязательный)
Если параметр установлен вtrue
, ссылка будет выведена на экран. Если вfalse
, функция вернет строку с HTML-кодом ссылки, которую можно обработать.
По умолчанию:true
.
Возвращаемое значение
- void|string: Возвращает
null
, если параметр$display
установлен вtrue
, и строку HTML, если установлен вfalse
.
Хуки
loginout
— позволяет изменять вывод ссылки на вход/выход.
Пример 1: Базовое использование
Этот пример выводит ссылку для входа или выхода в зависимости от авторизации пользователя:
<p><?php wp_loginout(); ?></p>
Результат для неавторизованного пользователя:
<a href="http://example.com/wp-login.php">Log In</a>
Результат для авторизованного пользователя:
<a href="http://example.com/wp-login.php?action=logout&_wpnonce=4fi3486239">Log Out</a>
Пример 2: Ссылка с перенаправлением на текущую страницу
Чтобы после входа или выхода пользователь оставался на текущей странице, можно использовать следующий код:
<p><?php wp_loginout( $_SERVER['REQUEST_URI'] ); ?></p>
Этот код добавляет в ссылку параметр перенаправления на текущую страницу.
Пример 3: Ссылка на вход/выход в навигационном меню
Для добавления ссылки на вход/выход в навигационное меню темы, вы можете добавить следующий код в файл functions.php
вашей темы:
add_filter( 'wp_nav_menu_secondary_items', 'wpdocs_loginout_menu_link' );
/**
* Добавляем ссылку на вход/выход в меню с перенаправлением на текущую страницу.
*/
function wpdocs_loginout_menu_link( $menu ) {
$loginout = wp_loginout( $_SERVER['REQUEST_URI'], false );
$menu .= $loginout;
return $menu;
}
Пример 4: Ссылка на вход/выход с кастомными стилями
Чтобы добавить ссылку на вход/выход с кастомными стилями для меню, можно использовать такой код:
$loginout = '<li class="nav-menu menu-item">'
. wp_loginout( $_SERVER['REQUEST_URI'], false )
. '</li>';
echo $loginout;
Пример 5: Возврат HTML-кода вместо вывода
Если вам нужно получить HTML-код ссылки на вход/выход для дальнейшей обработки, установите параметр $display
в false
:
$link = wp_loginout( '', false );
echo '<div class="loginout-link">' . $link . '</div>';
Заключение
Функция wp_loginout()
предоставляет простой способ динамически выводить ссылки на вход или выход из системы в зависимости от состояния авторизации пользователя. Она легко интегрируется в темы и шаблоны WordPress и поддерживает параметр перенаправления на нужную страницу после входа или выхода.