wp_logout_url() WP 2.7.0

Отримує посилання (URL) на “вихід” із сайту. Для авторизованих користувачів.

Результат пропускається через esc_html() .

Основа для:
wp_loginout()

Хуки з функції

Повертає

Строку. УРЛ, що веде на “вихід”.

Примітка: URL обробляється функцією wp_nonce_url() .

Використання

wp_logout_url ($ redirect);
$redirect
(рядок)
УРЛ на який перекине після виходу.


За замовчуванням: ”

Приклади

0

#1 Виведемо посилання в будь-якому місці шаблону:

<a href="<?php echo wp_logout_url(); ?>" title="Вихід">Вихід</a>
0

#2 Вийти з переходом на головну сторінку:

<a href="<?php echo wp_logout_url( home_url() ); ?>" title="Вихід">Вихід</a>
0

#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>
0

#4 Залишитись на поточній сторінці після виходу з системи

<a href="<?php echo wp_logout_url( get_permalink() ); ?>" title="Logout">Logout</a>
-1

#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 6.0.2

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 HTML-encoded logout URL.
	 * @param string $redirect Path to redirect to on logout.
	 */
	return apply_filters( 'logout_url', $logout_url, $redirect);
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *