Как я могу проверить, является ли текущая страница wp-login.php
или wp-signup.php
?
Есть ли более элегантные решения, чем использование $_SERVER['REQUEST_URI']
?
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Для справки здесь есть соответствующее обсуждение trac core.trac.wordpress.org/ticket/19898.
Это работает, если пользователь изменит свой URL-адрес wp-login.php?
Хороший вопрос от @LucasBustamante, и я полагаю, его легко проверить. Просто очень важно указать и сэкономить чье-то время.
@T.Todua предоставил более безопасный и надежный ответ ниже.
Для меня даже pagenow говорит, что это index.php…
Это фантастика. Использование включенных файлов для определения местоположения посетителя — это не тот сценарий, который я когда-либо использовал, но в данном случае это имеет смысл.
@RyanBayne, спасибо, да, это тот редкий случай, когда
get_included_files()
решение кажется наиболее точным (по крайней мере, для меня).Для меня это возвращает false, как будто это не страница входа в wp… Также даже $GLOBALS[‘pagenow’] возвращает index.php…
@trainoasis, возможно, вы используете ручную форму входа (например, шорткод) на главной странице или что-то в этом роде?
Нет, обычный wp-login.php 🙂 Но я использую Sage и WooCommerce, может это как-то меняет дело 🙂
Я собирался предложить это. Возможно, OP необходимо проанализировать результаты wp_login_url() и сравнить веб-путь.
Мне нравится этот ответ лучше всего. Чтобы соответствовать моим предпочтениям, я немного изменил его:
return false !== stripos( wp_login_url(), $_SERVER['SCRIPT_NAME'] );
. Это кажется мне немного чище.Используйте global
$pagenow
, который является общим глобальным набором WordPress во время выполнения:Вы также можете проверить тип страницы входа, например регистрация:
Следующий код считается устаревшим и не должен использоваться (
wp-register.php
устарел и впоследствии был удален довольно давно):Мой предпочтительный способ:
код:
Почему это самое безопасное?
REQUEST_URI
(илиSCRIPT_PATH
), вы получите НЕПРАВИЛЬНЫЕ ЗНАЧЕНИЯ, потому что многие плагины меняют URL-адреса LOGIN и ADMIN.2)
$pagenow
в этом случае также даст вам неверное значение!Примечания:
Более современный способ сделать это, он должен работать, даже когда URL-адрес wp-login изменяется плагинами и когда WP находится в подпапке и т. д.: