Это происходит потому, что вы пропустили необходимый одноразовый номер в URL, который проверяется в wp-login.php
case'logout':
check_admin_referer('log-out');...
Используйте wp_logout_urlдля того, чтобы получить URL, включая nonce. Если вы хотите перенаправить на пользовательский URL, просто передайте его в качестве аргумента.
echo wp_loginout ('/ redirect / url / идет / здесь') работает нормально ..
Mayur Devmurari
1
Я пользуюсь wp_logout_url( get_permalink())и страница подтверждения не обойдена. Одноразовый номер генерируется как часть URL, но я все еще отправляюсь на страницу подтверждения
Ralphonz
Та же проблема здесь :(
Jarmerson
15
Если вы не можете использовать wp_logout_url()функцию, вы можете отключить эту проверку с помощью этого кода:
Это работает для выхода без проверки, но не перенаправляет на URL, который я хочу.
Фу Нгуен
@PhuNguyen Вам просто нужно добавить URL перенаправления в запрос перенаправления в том коде, где после двоеточия есть кавычки.
NJENGAH
Есть ли какие-либо последствия для безопасности для удаления этой проверки?
Рок
@ user1264304 Я полагаю, что вредоносный JS, каким-то образом загруженный в браузер, может перенаправить на страницу входа, но все, что он собирается сделать, - это выйти из системы. Действительно вредоносный код, вероятно, будет пытаться заменить URL-адрес перед допустимым одноразовым номером. Пользователь может перейти на другой сайт, на котором есть ссылка на страницу выхода с текущего сайта - при условии, что другой сайт знает, что у пользователя есть связь. Опять же, никаких последствий, кроме выхода из системы пользователя. Я никогда не видел это. Таким образом, чтобы ответить на ваш вопрос, я не думаю, что это имеет значение для безопасности для удаления проверки.
TonyG
О, слишком много перенаправлений ...
Соломон Клоссон
3
Если вы создаете пользовательскую ссылку в вашем меню, установите метку на “Logout”и установите URL на http://yourdomain.com/wp-login.php?action=logout. Затем добавьте эту функцию в ваш functions.phpфайл:
function change_menu($items){foreach($items as $item){if( $item->title =="Logout"){
$item->url = $item->url ."&_wpnonce=". wp_create_nonce('log-out');}}return $items;}
add_filter('wp_nav_menu_objects','change_menu');
Если вы хотите перенаправить на страницу входа после выхода из системы, вы должны добавить URL для входа в систему как:
wp_logout_url( get_permalink())
и страница подтверждения не обойдена. Одноразовый номер генерируется как часть URL, но я все еще отправляюсь на страницу подтвержденияЕсли вы не можете использовать
wp_logout_url()
функцию, вы можете отключить эту проверку с помощью этого кода:Замените
'url-you-want-to-redirect'
на URL, который вы хотите перенаправить после выхода из системы.Добавьте его в свой
functions.php
источник
Если вы создаете пользовательскую ссылку в вашем меню, установите метку на
“Logout”
и установите URL наhttp://yourdomain.com/wp-login.php?action=logout
. Затем добавьте эту функцию в вашfunctions.php
файл:Если вы хотите перенаправить на страницу входа после выхода из системы, вы должны добавить URL для входа в систему как:
Ссылка ссылка
источник
Это сработало для меня, добавив
/?customer-logout=true
в конце.http://www.website.com/?customer-logout=true
источник