mike
  • 0
Гуру

Определить, является ли страница страницей сообщений

  • 0

На странице « Настройки чтения » вы можете установить «Главную страницу» и «Страницу сообщений». Вы можете проверить, является ли текущая страницаis_front_page();

Есть ли аналогичная функция для «Страницы сообщений». Я заметил, что is_page(); это не работает для этой специальной страницы.

Спасибо

Share
  1. is_home() проверяет «Страницу сообщений», несмотря на несколько запутанное название функции.

    • 0
  2. WordPress поставляется с 7 основными типами страниц шаблонов, которые можно определить таким образом.

    if ( is_main_query() ) {
        // Error
        if ( is_404() ) {
            ;
        }
        // Front page
        if ( is_front_page() ) {
            ;
        }
        // Archive
        if ( is_archive() ) {
            ;
        }
        // Comments popup
        if ( is_comments_popup() ) {
            ;
        }
        // Search
        if ( is_search() ) {
            ;
        }
        // Singular
        if ( is_singular() ) {
            ;
        }
        // Home - the blog page
        if ( is_home() ) {
            ;
        }
    }
    

    is_home говорит вам, что у вас есть страница блога.

    • 0
  3. «Страница сообщений» обычно представляет собой архив:

    • сообщения категории
    • сообщения тега
    • сообщения даты (год, месяц…)
    • посты основного архива

    Каждый из них может быть проверен одним из многих условных тегов, таких как is_category() is_tag() is_date() is_archive() и многие другие. Чтобы лучше понять, перейдите к кодексу http://codex.wordpress.org/Conditional_Tags.

    • 0
  4. Сначала проверьте связанные с блогами вещи, такие как автор, тег, тип сообщения.

    function is_blog () {
            global  $post;
            $posttype = get_post_type($post );
            return ( ((is_archive()) || (is_author()) || (is_category()) || (is_home()) || (is_single()) || (is_tag())) && ( $posttype == 'post')  ) ? true : false ;
      }
    

    Теперь проверьте и верните то, что вы хотите иметь

    function check_post_type(){
        $postType;
        if (is_blog())
          {
             $postType = 'I am post';
          } else
           {
              $postType = 'I am page';
           };
        return $postType;
      }
    

    Используй как Босс<?php echo check_post_type();?>

    Спасибо Весу Босу

    • 0
  5. https://codex.wordpress.org/Conditional_Tags в WordPress Codex говорит, что вы можете ссылаться на страницы следующим образом:

    if ( is_front_page() && is_home() ) {
      // Default homepage
    } elseif ( is_front_page() ) {
      // static homepage
    } elseif ( is_home() ) {
      // blog page
    } else {
      //everything else
    }
    
    • 0
  6. TL;DR

    Случай А. Нет необходимости определять его внутри основного файла шаблона (index.php), поскольку он является для него шаблоном по умолчанию [1].

    Случай Б. Чтобы определить его внутри шаблона страницы (например, page.php), просто проверьте его следующим образом:

    get_option( 'page_for_posts' ) == get_the_ID()
    

    Подробности

    Я буквально начал копать исходный код [2], просто чтобы узнать, как WordPress проверяет значение. Оказывается, он использует оператор get_option( 'page_for_posts' ), чтобы узнать идентификатор сообщения выбранного значения на странице сообщений.

    Так что да, для этой цели нет официальной функции проверки, похожей на is_front_page() .

    Если вы знаете идентификатор выбранной вами страницы, вы можете использовать его для процесса проверки.

    использованная литература

    1. Кодекс WordPress, разработка тем, codex.wordpress.org/Theme_Development

    2. Исходный код настроек — настройки чтения, github.com/WordPress/…/wp-admin/options-reading.php

    • 0

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

You must login to add an answer.