WordPressのカスタム投稿タイプで特定のタームごとの記事一覧を表示させる

どうも、ホワイトです。

WordPressでカスタム投稿タイプを使用していると、ある特定タームの記事を何件か表示させることはできますか?ということがありました。

通常の投稿のカテゴリーだったら、すぐできるんですが、少し考えてしまったことがあったので、備忘録とともに設定方法を残しておきます。

tax_queryを使って記事を読み込む

今回ポイントとなるのはtax_queryじゃないかと思います。

<ul>
  <?php $query = new WP_Query( array( 'post_type' => 'column', //カスタム投稿タイプの指定
          'posts_per_page' => 4, //表示件数
          'tax_query' => array(
              array(
                  'taxonomy' => 'column-cat', //タクソノミーの指定
                  'field' => 'slug',
                  'terms' => array(
                      'books', //column-catのタームであるbooksの記事を指定
                  ),
              ),
          ),
      )
  );
  ?>
  <?php if($query -> have_posts()): ?>
  <?php while($query -> have_posts()): $query->the_post();?>
  <li>
    <a href="<?php the_permalink(); ?>">
      <?php the_post_thumbnail('pagePost'); ?>
      <?php echo get_the_date('Y.m.d'); ?>
      <?php the_title();?>
    </a>
  </li>
  <?php endwhile; ?>
  <?php endif; wp_reset_postdata(); ?>
</ul>

これでカスタム投稿タイプ”column”のカスタムタクソノミーである”column-cat”に属する”books”の記事が表示されることになります。

htmlの部分は任意なので、使用する状況に応じて適宜変更してください。

通常投稿だけじゃなく、カスタム投稿でもカテゴリー分け、タグ分けのような形で細かく指定されることは結構あると思うので、この書き方を知っておくと便利だと思います。