WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

wp_logout_url() WP 2.7.0

Получает ссылку (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. Выйти и остаться на текущей странице:

$linkpage = esc_url( 'https://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
echo sprintf( '<a class="exit" href="%s">Выйти</a>',  wp_logout_url( $linkpage ) );

#3. Выйти с переходом на главную страницу:

<a href="<?php echo wp_logout_url( home_url() ); ?>" title="Выход">Выход</a>

#4 Выход и редирект на другой сайт

Допустим после выхода нужно перенаправить пользователя на другой сайт (на под сайт мультисети). Для такой возможности нужно добавить сайт в белый список, через фильтр 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>

Список изменений

С версии 2.7.0 Введена.

Код wp_logout_url() WP 5.5.1

wp-includes/general-template.php
<?php
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 );
}

Cвязанные функции

Из раздела: Вход/выход

Еще из тегов шаблона: Основные

7 комментов