Перенаправление пользователя после выхода
Я пытаюсь создать страницу отписки для моих участников, но чтобы увидеть форму отписки, они должны выйти из системы, поэтому первая ссылка выглядит так:
/wp-login.php?action=logout&_wpnonce=ba51bbcdc3.
После выхода из системы мне нужно перенаправить их на форму отписки, но я не могу просто настроить переадресацию, потому что это также страница входа.
Вы можете использовать тег шаблона 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;
}

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>
