Визначте, чи сторінка є Повідомленням


18

На сторінці " Параметри читання " можна встановити "Титульну сторінку" та "Сторінку повідомлень". Ви можете перевірити, чи поточна сторінкаis_front_page();

Чи є подібна функція для "Сторінки повідомлень". Я помітив, що is_page();для цієї спеціальної сторінки не працює.

Спасибі

Відповіді:


34

is_home() перевіряє "Сторінку повідомлень", незважаючи на дещо заплутану назву функції.


дякую, я думав, я перевірив їх усіх, але я думаю, що ні ...
Майк

3
Про що $wp_query->is_posts_page?
Вестон Рутер

@WestonRuter має правильну відповідь на питання.
The J

6

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 каже вам, що у вас є сторінка блогу.


1

"Сторінка публікацій", як правило, є архівом:

  • повідомлення категорії
  • повідомлення тегу
  • повідомлення дати (рік, місяць ...)
  • посади головного архіву

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


0

Спочатку перевірте, що стосуються блогів, такі як автор, тег, тип публікації

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();?>

Завдяки Wes Bos


0

TL; DR

Випадок A . Не потрібно визначати його всередині головного файлу шаблону (index.php), оскільки це шаблон за замовчуванням для нього [1] .

Випадок B . Щоб визначити його всередині шаблону сторінки (наприклад: page.php), просто перевірте його так:

get_option( 'page_for_posts' ) == get_the_ID()

Деталі

Я буквально пішов копати його вихідний код [2] лише для того, щоб зрозуміти, як Wordpress робить перевірку значення. Виявляється, за допомогою оператора get_option( 'page_for_posts' )можна дізнатися ідентифікатор пошти вибраного значення сторінки "Повідомлення" .

Так, так, для цього не існує такої офіційної функції перевірки, яка була б подібною до is_front_page().

Поки ви знаєте ідентифікатор сторінки, яку ви вибрали, ви можете використовувати її для перевірки.

Список літератури

  1. WordPress Codex, Розробка тем, codex.wordpress.org/Theme_Development

  2. Вихідний код НалаштуваньПараметри читання , github.com/WordPress/…/wp-admin/options-reading.php

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.