WordPress как на ладони
Мощный и не дорогой хостинг от Fornex.com Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

wp_logout_url() WP 2.7.0

Получает ссылку (УРЛ) на "выход" из сайта для авторизованных пользователей.

Является основой для: wp_loginout()

Хуков нет.

Возвращает

УРЛ, который ведет на "выход" для залогиненных пользователей.

Использование

<?php echo wp_logout_url( $redirect ); ?>
$redirect(строка)
УРЛ на который перекинет после выхода.
По умолчанию: нет

Примеры

#1. Выведем ссылку в любом месте шаблона:

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

#2. Выйти и остаться на текущей странице:

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

#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[] = 'myredirectsite.com';
	return $allowed;
}
?>
<a href="<?php echo wp_logout_url( 'http://myredirectsite.com' ); ?>">Выход</a>

Код wp_logout_url: wp-includes/general-template.php VER 5.0.1

<?php
function wp_logout_url($redirect = '') {
	$args = array( 'action' => 'logout' );
	if ( !empty($redirect) ) {
		$args['redirect_to'] = urlencode( $redirect );
	}

	$logout_url = add_query_arg($args, site_url('wp-login.php', '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вязанные функции

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

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

8 комментов
  • Roman

    Здравствуйте, а как сделать что бы при выходе пропадала ссылка "выход"?

    Ответить4 года назад #
    • @ campusboy3080 cайт: www.youtube.com/c/wpplus

      Создайте условие, что если пользователь авторизован, то эта ссылка не видна.

      1
      Ответить4 года назад #
  • @ Виктор

    Подскажите, как сделать, чтобы из любого файла не темы WordPress получить доступ к БД? Потому что я вставляю ссылку на "Выход" для авторизованных пользователей, но она не работает. Срабатывает только в файлах темы, а мне нужно сделать ее в файле меню (у меня меню сайта на отдельном файле в корне сайта).

    Ответить2.3 года назад #
    • Kama7099

      Для этого нужно подключить среду WordPress. Но делать этого я не рекомендую - лишняя нагрузка...

      Лучше просто пропишите туда ссылку на выход вручную... Может где нужно свой PHP код дописать...

      Ответить2.3 года назад #
      • @ виктор

        Я помню у вас гдето было написано как подключиться к БД. Там всего три строки было вроде. Просто мне нужно рядом с ссылкой на выход еще и логин пользователя вывести. А без бд его не узнать...

        Ответить2.3 года назад #
  • андрей

    Подскажите, а где, в каком месте искать эту функцию в wordpress, чтоб отредактировать ???
    Спасибо

    • @ campusboy3080 cайт: www.youtube.com/c/wpplus

      Нельзя редактировать файлы движка, от этого карма портится.

      1
  • @ Amagon

    обрый день. Пытаюсь добавить кнопку выхода к форме добавления комментария. Добавил в function.php

    function wph_change_submit_label($defaults) {
     $text_out = mb_convert_encoding('Выйти', 'utf-8', 'cp-1251'); 
    
    $defaults['title_reply'] =
    
     '<p><h3 id="reply-title" class="comment-reply-title"><a href="' . sprintf( wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) )). '" title=' . sprintf( $text_out). '>' . sprintf( $text_out). '</a></h3></p>';
    
    	return $defaults;
    }
    add_filter('comment_form_defaults', 'wph_change_submit_label');
    

    ссылка выйти появилась, но она ссылается просто на текущую страницу, что то вроде http://сайт.ru/статья , и при нажатии нап неё ,страница просто обноваляется без выхода из ссесии.
    В чём может быть проблема почему функция выхода не работает? Может есть альтернативный вариант?

Здравствуйте, !     Войти . Зарегистрироваться