Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now
Sign InSign Up

PHP-J

PHP-J

PHP-J Navigation

  • Главная
  • Контакты
Поиск
Задать вопрос

Mobile menu

Close
Задать вопрос
  • Главная
  • Add group
  • User Profile
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Buy Points
Home/ Questions/Q 76506
Next
Answered
onetrickpony
  • 0
onetrickponyГуру
Asked: 20 марта, 20222022-03-20T02:08:15+03:00 2022-03-20T02:08:15+03:00In: Wordpress (Вопросы и ответы)

Проверить, является ли wp-login текущей страницей

  • 0

Как я могу проверить, является ли текущая страница wp-login.php или wp-signup.php ?

Есть ли более элегантные решения, чем использование $_SERVER['REQUEST_URI'] ?

conditional-tagsloginpagesuser-registration
  • 15 15 ответов
  • 33 просмотров
  • 0 Followers
  • 0
Ответить
Share
  • Facebook

    15 ответов

    • Лучшие оценки
    • Старые
    • Недавние
    • Случайные
    1. stephenharris Учитель
      2022-03-20T02:08:50+03:00Добавлен ответ 20 марта, 2022 в 2:08 дп

      Для справки здесь есть соответствующее обсуждение trac core.trac.wordpress.org/ticket/19898.

      • 0
      • Reply
      • lucasbustamante Новичок
        2022-03-20T02:10:24+03:00Replied to ответ 20 марта, 2022 в 2:10 дп

        Это работает, если пользователь изменит свой URL-адрес wp-login.php?

        • 0
        • Reply
      • ryanbayne Новичок
        2022-03-20T02:11:08+03:00Replied to ответ 20 марта, 2022 в 2:11 дп

        Хороший вопрос от @LucasBustamante, и я полагаю, его легко проверить. Просто очень важно указать и сэкономить чье-то время.

        • 0
        • Reply
      • mopsyd Новичок
        2022-03-20T02:11:51+03:00Replied to ответ 20 марта, 2022 в 2:11 дп

        @T.Todua предоставил более безопасный и надежный ответ ниже.

        • 0
        • Reply
      • trainoasis Новичок
        2022-03-20T02:12:35+03:00Replied to ответ 20 марта, 2022 в 2:12 дп

        Для меня даже pagenow говорит, что это index.php…

        • 0
        • Reply
      • ryanbayne Новичок
        2022-03-20T02:14:01+03:00Replied to ответ 20 марта, 2022 в 2:14 дп

        Это фантастика. Использование включенных файлов для определения местоположения посетителя — это не тот сценарий, который я когда-либо использовал, но в данном случае это имеет смысл.

        • 0
        • Reply
      • ttodua Учитель
        2022-03-20T02:14:46+03:00Replied to ответ 20 марта, 2022 в 2:14 дп

        @RyanBayne, спасибо, да, это тот редкий случай, когда get_included_files() решение кажется наиболее точным (по крайней мере, для меня).

        • 0
        • Reply
      • trainoasis Новичок
        2022-03-20T02:15:28+03:00Replied to ответ 20 марта, 2022 в 2:15 дп

        Для меня это возвращает false, как будто это не страница входа в wp… Также даже $GLOBALS[‘pagenow’] возвращает index.php…

        • 0
        • Reply
      • ttodua Учитель
        2022-03-20T02:16:10+03:00Replied to ответ 20 марта, 2022 в 2:16 дп

        @trainoasis, возможно, вы используете ручную форму входа (например, шорткод) на главной странице или что-то в этом роде?

        • 0
        • Reply
      • trainoasis Новичок
        2022-03-20T02:16:53+03:00Replied to ответ 20 марта, 2022 в 2:16 дп

        Нет, обычный wp-login.php 🙂 Но я использую Sage и WooCommerce, может это как-то меняет дело 🙂

        • 0
        • Reply
      • svetoslavmarinov Новичок
        2022-03-20T02:18:16+03:00Replied to ответ 20 марта, 2022 в 2:18 дп

        Я собирался предложить это. Возможно, OP необходимо проанализировать результаты wp_login_url() и сравнить веб-путь.

        • 0
        • Reply
      • iandunn Эксперт
        2022-03-20T02:18:59+03:00Replied to ответ 20 марта, 2022 в 2:18 дп

        Мне нравится этот ответ лучше всего. Чтобы соответствовать моим предпочтениям, я немного изменил его: return false !== stripos( wp_login_url(), $_SERVER['SCRIPT_NAME'] ); . Это кажется мне немного чище.

        • 0
        • Reply
    2. Лучший ответ
      thedeadmedic Гуру
      2022-03-20T02:09:33+03:00Добавлен ответ 20 марта, 2022 в 2:09 дп

      Используйте global $pagenow, который является общим глобальным набором WordPress во время выполнения:

      if ( $GLOBALS['pagenow'] === 'wp-login.php' ) {
          // We're on the login page!
      }
      

      Вы также можете проверить тип страницы входа, например регистрация:

      if ( $GLOBALS['pagenow'] === 'wp-login.php' && ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] === 'register' ) {
          // We're registering
      }
      

      Следующий код считается устаревшим и не должен использоваться ( wp-register.php устарел и впоследствии был удален довольно давно):

      if ( in_array( $GLOBALS['pagenow'], array( 'wp-login.php', 'wp-register.php' ) ) )
          run_my_funky_plugin();
      

      • 0
      • Reply
    3. ttodua Учитель
      2022-03-20T02:13:19+03:00Добавлен ответ 20 марта, 2022 в 2:13 дп

      Мой предпочтительный способ:

      if( is_wplogin() ){
         ...
      }
      

      код:

      function is_wplogin(){
          $ABSPATH_MY = str_replace(array('','/'), DIRECTORY_SEPARATOR, ABSPATH);
          return ((in_array($ABSPATH_MY.'wp-login.php', get_included_files()) || in_array($ABSPATH_MY.'wp-register.php', get_included_files()) ) || (isset($_GLOBALS['pagenow']) && $GLOBALS['pagenow'] === 'wp-login.php') || $_SERVER['PHP_SELF']== '/wp-login.php');
      }
      

      Почему это самое безопасное?

      1. Иногда, если вы попытаетесь проверить страницу входа с помощью REQUEST_URI (или SCRIPT_PATH ), вы получите НЕПРАВИЛЬНЫЕ ЗНАЧЕНИЯ, потому что многие плагины меняют URL-адреса LOGIN и ADMIN.
        2) $pagenow в этом случае также даст вам неверное значение!

      Примечания:

      • В некоторых случаях это может не сработать, если вы выведете форму входа (например, с коротким кодом или т. д.) вручную на другие файлы/страницы шаблона.
      • 0
      • Reply
    4. firsh-justifiedgridcom Новичок
      2022-03-20T02:17:38+03:00Добавлен ответ 20 марта, 2022 в 2:17 дп

      Более современный способ сделать это, он должен работать, даже когда URL-адрес wp-login изменяется плагинами и когда WP находится в подпапке и т. д.:

      if(stripos($_SERVER["SCRIPT_NAME"], strrchr(wp_login_url(), '/')) !== false){
          /* ... */
      }
      
      • 0
      • Reply

    Оставить ответ
    Отменить ответ

    You must login to add an answer.

    Forgot Password?

    Need An Account, Sign Up Here

    Sidebar

    Ask A Question

    Stats

    • Questions : 7k
    • Answers : 38k
    • Best Answers : 4k
    • Users : 5k
    • Popular
    • Answers
    • netconstructorcom

      Лучшая подборка кода для вашего файла functions.php [закрыто]

      • 97 Answers
    • MikeSchinkel

      Объективные рекомендации по разработке плагинов? [закрыто]

      • 83 Answers
    • EAMann

      Как легко перенести установку WordPress из стадии разработки в рабочую ...

      • 60 Answers
    • EarleSemia
      EarleSemia added an answer [url=http://images.google.com.uy/url?q=https://big2dickporn.club/2022/06/21/ШЈШ±ШЁШ№Ш©-Ш±ЩЃШ§Щ‚-ЩЉЩ…Ш§Ш±Ші-Ш§Щ„Ш¬Щ†Ші-Щ…Ш№-ШІЩ€Ш¬ШЄЩЉ.html]ШЈШ±ШЁШ№Ш©-Ш±ЩЃШ§Щ‚-ЩЉЩ…Ш§Ш±Ші-Ш§Щ„Ш¬Щ†Ші-Щ…Ш№-ШІЩ€Ш¬ШЄЩЉ[/url] 6 июля, 2022 at 9:18 дп
    • Karenfreva
      Karenfreva added an answer [url=https://sildenafilviashop.com/]viagra over the counter[/url] cialis vs viagra [url=https://tblsviagra.com/]cheap viagra online[/url]… 27 июня, 2022 at 11:19 дп
    • Karenfreva
      Karenfreva added an answer [url=https://casinoboba.com/]lucky creek[/url] uptown ace casino [url=https://casinowingames.com/]sloto cash casino[/url] andromeda [url=https://realmonetcasino.com/]ignition[/url]… 25 июня, 2022 at 12:21 пп

    Похожие вопросы

    • nmystic

      Как назначить файл по умолчанию в «Внешний вид > Редактор»?

      • 0 Answers
    • billeisenhauer

      Как показать полную публикацию на главной странице

      • 0 Answers
    • atticus

      Создание пользовательских запросов AJAX

      • 1 Answer

    Лучшие участники

    rarst

    rarst

    • 0 Questions
    • 5k Points
    Гуру
    bainternet

    bainternet

    • 0 Questions
    • 5k Points
    Гуру
    janfabry

    janfabry

    • 0 Questions
    • 3k Points
    Гуру

    Trending Tags

    categories comments custom-field custom-post-types custom-taxonomy customization functions images menus multisite pages permalinks php plugin-development plugin-recommendation plugins posts theme-development themes widgets wp-admin

    Footer

    © 2022

    Вставить/изменить ссылку

    Введите адрес назначения (URL)

    Или сделайте ссылку на существующий материал

      Поисковый запрос не задан. Показаны недавние элементы. Воспользуйтесь поиском или клавишами вверх/вниз, чтобы выбрать элемент.