Wordpress - как определить, является ли текущая страница страницей входа - PullRequest
21 голосов
/ 11 марта 2011

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

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

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

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

Ответы [ 4 ]

49 голосов
/ 05 мая 2011

Хотя я склонен согласиться с другими в отношении необходимости использования функции 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'));
}
4 голосов
/ 11 октября 2013

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

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

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

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

0 голосов
/ 20 декабря 2012

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

function is_login_page() {
    return !strncmp($_SERVER['REQUEST_URI'], '/wp-login.php', strlen('/wp-login.php'));
}
0 голосов
/ 11 марта 2011

Не могли бы вы объяснить, что вы собираетесь с этим делать? Так что я могу сказать, если вы должны кодировать с использованием WordPress.

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

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

echo $uri;

?>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...