Перенаправление пользователя после выхода

2 янв. 2013 г., 06:18:24
Просмотры: 16.9K
Голосов: 2

Я пытаюсь создать страницу отписки для моих участников, но чтобы увидеть форму отписки, они должны выйти из системы, поэтому первая ссылка выглядит так:

/wp-login.php?action=logout&_wpnonce=ba51bbcdc3. 

После выхода из системы мне нужно перенаправить их на форму отписки, но я не могу просто настроить переадресацию, потому что это также страница входа.

0
Все ответы на вопрос 3
1

Вы можете использовать тег шаблона wp_logout_url() для создания ссылки выхода. В качестве первого параметра вы можете указать URL, на который будет перенаправлен пользователь:

wp_logout_url( 'http://example.com' );

Приведённый выше код сгенерирует URL, который выглядит примерно так: /wp-login.php?action=logout&_wpnonce=ba51bbcdc3&redirect_to=http://example.com/unsubscribe. Вы можете превратить его в ссылку следующим образом:

<a href="<?php echo wp_logout_url( home_url( 'unsubscribe' ) ); ?>" title="Выход">Выйти и отписаться</a>

Если вы хотите использовать это на странице или в записи, вам нужно создать шорткод:

function wpse_77939_unsubscribe_link() {
    return sprintf(
        '<a href="%s" title="Выход">Выйти и отписаться</a>',
        wp_logout_url( home_url( 'unsubscribe' ) )
    );
add_shortcode( 'unsubscribe-link', 'wpse_77939_unsubscribe_link' );

Затем вы можете добавить [unsubscribe-link] в запись или на страницу, где должна появиться ссылка.


Если вы перенаправляете на другой сайт, кроме вашего собственного, вам нужно добавить этот код в файл functions.php (замените example.com на домен сайта):

add_filter( 'allowed_redirect_hosts','wpse_77938_allowed_redirect_hosts' );
function wpse_77938_allowed_redirect_hosts( $allowed ) {
    $allowed[] = 'example.com';
    return $allowed;
}
2 янв. 2013 г. 07:50:14
Комментарии

Этот ответ расширяет публикацию @WordPress Kid

shea shea
2 янв. 2013 г. 08:31:09
0

Используйте этот код, если добавляете его в меню через менеджер меню

http://www.example.com/wp-login.php?action=logout&redirect_to=http://www.example.com/
27 апр. 2014 г. 09:17:18
2

WordPress включает в себя тег шаблона, который можно использовать: wp_logout_url(). Это всего несколько строк кода, если вам нужно перенаправлять пользователей на другой URL после выхода из системы.

Я написал руководство в конце прошлого года о том, как использовать этот тег шаблона. Вкратце, вам нужно создать фильтр в файле functions.php, а затем добавить ссылку для выхода в sidebar.php.

Если вы перенаправляете на другой сайт, а не на свой собственный, вам нужно добавить этот код в файл functions.php (замените example.com на домен сайта):

add_filter( 'allowed_redirect_hosts','wpse_77938_allowed_redirect_hosts' );
function wpse_77938_allowed_redirect_hosts($link) {
    $link[] = 'example.com';
    return $link;
}

Затем вам нужно добавить эту строку в файл sidebar.php или в любое место, где можно выполнять PHP-код:

<a href="<?php echo wp_logout_url( 'http://example.com' ); ?>" title="Выход">Выход</a>
2 янв. 2013 г. 07:40:04
Комментарии

Пожалуйста, объясните, как это сделать, в рамках вашего ответа

shea shea
2 янв. 2013 г. 07:55:57

Готово, @bungeshea.

Naveen Chand K Naveen Chand K
2 янв. 2013 г. 08:02:54