wp_logout_url()
Получает ссылку (URL) на "выход" из сайта. Для авторизованных пользователей.
Результат пропускается через esc_html().
Основа для: wp_loginout()
Хуки из функции
Возвращает
Строку
. УРЛ, который ведет на "выход".
Заметка: URL обрабатывается функцией esc_html(), когда пропускается через функцию wp_nonce_url().
Использование
wp_logout_url( $redirect );
- $redirect(строка)
- УРЛ на который перекинет после выхода.
По умолчанию: ''
Примеры
#1 Выведем ссылку в любом месте шаблона:
<a href="<?php echo wp_logout_url(); ?>" title="Выход">Выход</a>
#2 Выйти с переходом на главную страницу:
<a href="<?php echo wp_logout_url( home_url() ); ?>" title="Выход">Выход</a>
#3 Выход и редирект на другой сайт
Допустим после выхода нужно перенаправить пользователя на другой сайт (на под сайт мультисети). Для такой возможности нужно добавить сайт в белый список, через фильтр allowed_redirect_hosts.
<?php add_filter( 'allowed_redirect_hosts','allowed_redirect_site' ); function allowed_redirect_site( $allowed ){ $allowed[] = 'example.com'; return $allowed; } ?> <a href="<?php echo wp_logout_url( 'http://example.com' ); ?>">Выход</a>
#4 Остаться на текущей странице после выхода из системы
<a href="<?php echo wp_logout_url( get_permalink() ); ?>" title="Logout">Logout</a>
#5 Выйти и остаться на текущей странице:
$linkpage = esc_url( 'https://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); echo sprintf( '<a class="exit" href="%s">Выйти</a>', wp_logout_url( $linkpage ) );
Список изменений
С версии 2.7.0 | Введена. |
Код wp_logout_url() wp logout url WP 6.4.3
function wp_logout_url( $redirect = '' ) { $args = array(); if ( ! empty( $redirect ) ) { $args['redirect_to'] = urlencode( $redirect ); } $logout_url = add_query_arg( $args, site_url( 'wp-login.php?action=logout', 'login' ) ); $logout_url = wp_nonce_url( $logout_url, 'log-out' ); /** * Filters the logout URL. * * @since 2.8.0 * * @param string $logout_url The HTML-encoded logout URL. * @param string $redirect Path to redirect to on logout. */ return apply_filters( 'logout_url', $logout_url, $redirect ); }