wordpress 日付け別でデフォルト投稿とカスタム投稿を条件分岐する方法

heeder.php

<?php elseif (is_date()): //日付別で条件分岐?>
  <?php if (get_post_type() == 'post'): ?>
    <h2>スタッフブログ</h2>
  <?php else: ?>
    <h2>新着情報</h2>
  <?php endif; ?>
<?php endif; ?>

このようにis_date()で日付け別に条件分岐し、さらにget_post_type()で一個目の投稿の投稿タイプを判定しています。

これでデフォルト投稿とカスタム投稿を条件分岐できます。

 

 

functions.php

/*  デフォルトクエリ設定  */
add_action( 'pre_get_posts', 'custom_post_archive');
function custom_post_archive($query) {
  if (!is_admin() && $query->is_main_query()){
   if ($query->is_date()) {
     // echo 'aaa';
     if(!empty($_GET['post_type']) && $_GET['post_type'] == 'news') {
      $query->set('posts_per_page',10);
     } else {
      $query->set('posts_per_page',10);
     }
   }
  }
}

 

投稿一覧で何ページ表示するかをpre_get_postsで設定しています。

このときのデフォルト投稿とカスタム投稿の条件分岐はゲットパラメータをしようします。

この辺りにハマってしまったので、同じように困っている人の助けになれば幸いです。

 

category cloud