ページが投稿ページかどうかを判別


18

の読み取り設定ページあなたは「フロントページ」と「投稿ページ」を設定することができます。現在のページかどうかを確認できますis_front_page();

「投稿ページ」に同様の機能がありますか。is_page();この特別なページでは機能しないことに気づきました。

ありがとう

回答:



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() And などの多くの条件タグのいずれかでチェックできます 。コーデックスの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();?>

おかげウェス・ボス


0

TL; DR

ケースA。メインテンプレートファイル(index.php)内で決定する必要はありません。これは、それがデフォルトのテンプレートであるためです[1]

ケースB。ページテンプレート(例:page.php)内で判断するには、次のようにチェックします。

get_option( 'page_for_posts' ) == get_the_ID()

詳細

wordpressが値のチェックをどのように行うかを知ることができるようにするために、文字通りソースコード[2]を掘り下げました。投稿ページでget_option( 'page_for_posts' )選択した値の投稿IDを知るためにステートメントを使用していることがわかりました。

そのため、この目的のために、に似た公式チェッカー機能はありませんis_front_page()

選択したページのIDを知っている限り、それをチェックプロセスに使用できます。

参照資料

  1. WordPress Codex、テーマ開発、codex.wordpress.org / Theme_Development

  2. 設定のソースコード› 読書設定github.com / WordPress /.../ wp - admin / options - reading.php

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.