Функция wp_logout_url()
возвращает URL, который позволяет пользователю выйти из системы. Этот URL может использоваться для создания ссылки на «выход» для авторизованных пользователей. После выхода можно перенаправить пользователя на другую страницу с помощью параметра $redirect
.
wp_logout_url( string $redirect = '' ): string
Описание
- wp_logout_url() генерирует ссылку, по которой пользователь может выйти из системы. По умолчанию, если параметр
$redirect
не указан, пользователь остается на странице логина после выхода. Однако вы можете указать URL для перенаправления после выхода с помощью этого параметра.
Параметры
- $redirect (строка, необязательный)
URL-адрес, на который будет перенаправлен пользователь после выхода.
По умолчанию:''
(переход на страницу логина).
Возвращаемое значение
- string: URL для выхода из системы.
Хуки
logout_url
— позволяет изменить URL для выхода.
Пример 1: Выход с перенаправлением на текущую страницу
Этот пример показывает, как создать ссылку для выхода из системы, с перенаправлением на текущую страницу после выхода:
<a href="<?php echo wp_logout_url( get_permalink() ); ?>">Logout</a>
Пример 2: Выход с перенаправлением на главную страницу
Если вы хотите перенаправить пользователя на главную страницу после выхода, можно использовать следующую конструкцию:
<a href="<?php echo wp_logout_url( home_url() ); ?>">Logout</a>
Результат будет следующим:
<a href="http://example.com/wp-login.php?action=logout&redirect_to=http%3A%2F%2Fexample.com">Logout</a>
Пример 3: Выход с перенаправлением на другой сайт (например, в мультисетевой среде)
Если необходимо перенаправить пользователя на другой сайт после выхода (например, на другой сайт в мультисетевой установке), вам нужно добавить сайт в белый список через фильтр allowed_redirect_hosts
:
add_filter( 'allowed_redirect_hosts', 'wpdocs_allow_ms_parent_redirect' );
function wpdocs_allow_ms_parent_redirect( $allowed ) {
$allowed[] = 'example.com';
return $allowed;
}
Теперь можно использовать такой код для выхода с перенаправлением на другой сайт:
<a href="<?php echo wp_logout_url( 'http://example.com' ); ?>">Logout</a>
Перенаправление на текущую страницу с использованием PHP
Если вам необходимо динамически получить текущий URL страницы и использовать его для перенаправления после выхода, можно сделать так:
$linkpage = esc_url( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
echo sprintf( '<a class="exit" href="%s">Logout</a>', wp_logout_url( $linkpage ) );
Заключение
Функция wp_logout_url()
— это простой способ создать ссылку для выхода из системы в WordPress. Она поддерживает перенаправление на любую страницу или внешний сайт и может быть кастомизирована с помощью фильтров.