Подтвердить что ты не робот

Wordpress - как определить, является ли текущая страница страницей входа

Существует лучший способ, чем использовать глобальную переменную $pagenow для определения текущей страницы, если это страница входа в систему, например is_admin()?

if ($pagenow != 'wp-login.php' && !is_admin())
{
    // Do something
}

Существует глобальная переменная $current_screen с геттером get_current_screen() (объявленная в /wp-admin/includes/template.php), но она всегда равна NULL

В # 15686 (Обнаружить тег текущей страницы) - WordPress Trac, он сказал, что обычно используется $pagenow, но я думаю, что это не лучший способ сравнить нединамические страницы против этого имени файла вместо функции (например, страница администратора)

4b9b3361

Ответ 1

Хотя я склонен соглашаться с другими о необходимости использования функции is_login_page() или чего-то подобного, я нашел наилучший ответ на https://wordpress.stackexchange.com/questions/12863/check-if-were-on-the-wp-login-page, который я использовал, чтобы сделать следующее:

<?php
function is_login_page() {
    return in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'));
}

Ответ 2

Если вы похожи на меня, и вы действительно пытались де-зарегистрироваться/беспорядок с jQuery, который WordPress автоматически загружает, тогда правильный ответ:

Не использовать wp_print_styles для регистрации ваших скриптов - используйте wp_enqueue_scripts strong > вместо этого

Этот хук будет работать только во внешнем интерфейсе, а не на странице входа, поэтому нет необходимости в обходных методах.

Насин объясняет это здесь: http://make.wordpress.org/core/2011/12/12/use-wp_enqueue_scripts-not-wp_print_styles-to-enqueue-scripts-and-styles-for-the-frontend/

Ответ 3

Разве вы не можете объяснить, что вы собираетесь с ним делать? Поэтому я могу сказать, следует ли вам кодировать с помощью перехватов Wordpress.

или вы можете использовать абсолютный uri, просто сопоставьте его с wp-login.php

<?php
$uri = $_SERVER['REQUEST_URI'];

echo $uri;

? >

Ответ 4

Если вы хотите быть независимым от non WP, насколько это возможно; например, в плагине, оставляя будущие изменения вне сферы действия. Вы можете использовать что-то вроде этого:

function is_login_page() {
    return !strncmp($_SERVER['REQUEST_URI'], '/wp-login.php', strlen('/wp-login.php'));
}