Intereting Posts
Использовать не пользовательские поля в get_posts () meta_query? Как удалить все элементы в разделе «Личные параметры» на странице профиля пользователя? Добавлено новое массовое действие, но работает только в раскрывающемся меню внизу Как обновить глобальный заголовок и нижний колонтитул Показать имя пользовательского меню в WordPress 3 Стиль очереди для страницы сброса пароля Постоянный пользовательский тип сообщения оператор switch для контента таксономии Как проверить, есть ли в заголовке тег Изменить выбор по умолчанию для «Вставить или ссылку»? Пользовательский плагин: попытка отображения сохраненных данных во внешнем интерфейсе term / tag не сохраняется для пользовательского типа сообщения Как вывести список определенного типа сообщений в таблице? Как добавить replyToUrl schema.org в комментарии WordPress? мета-поля для всего сайта wordpress

Проблема, возникшая при попытке сохранить приватный веб-сайт

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

function redirect_user() { if ( ! is_user_logged_in() && ! is_page(array('login','register','lostpassword','contact-us' ))) { $return_url = esc_url( home_url( '/login/' ) ); wp_redirect( $return_url ); exit; } } add_action( 'template_redirect', 'redirect_user' ); 

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

Поскольку ссылка на пароль сброса является динамически сгенерированной ссылкой, это не то, что я мог бы добавить к моему списку страниц, как показано в выписке кода выше. Я проверял документацию WordPress, и я не вижу ничего полезного. Любая помощь будет принята с благодарностью.

Просмотрев ссылку на сброс пароля, я понял, что две переменные передаются через ключ $ _GET: и логин. Я добавил код ниже к началу моей функции redirect_user ():

 if(isset($_GET['key']) && isset($_GET['login'])) { return ; } 

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

 if(!isset($_GET['key']) && !isset($_GET['login'])) { return ; } 

Он работает по назначению, но я смущен почему.