WordPress カテゴリー毎の一覧ページを作りたい

カテゴリー名を見出しにして、そのカテゴリーに属する記事の一覧をだして、次のカテゴリーを見出しにして・・・。
そんな連続したカテゴリー毎の一覧ページを作りたいことってありますよね。

特定のカテゴリー毎の一覧をカテゴリーの数だけ作ればいいんだけど、ユーザーさんがカテゴリーを追加したら、対応できなくなってしまいます。
カテゴリーを追加したら自動で追加されるようなのを作りたいんだよ!

カテゴリーA
 ・記事
 ・記事
 ・記事
 カテゴリB
 ・記事
 ・記事
 ・記事
 カテゴリC
 ・記事
 ・記事
 ・記事
 (自動で増えていく)

コードはこんな感じになりました。

<?php
//まずはカテゴリーを取得(カスタムタクソノミーでもOK)
$catargs = array(
  'taxonomy' => '○○○'//タクソノミー名
);
$catlists = get_categories( $catargs );
foreach($catlists as $cat) : //取得したカテゴリの配列でループを回す ?>
  <h2><?php echo $cat->name; ?></h2> <!-- カテゴリ名を表示 -->
  <?php $args = array(
    'post_type' => '□□□',//カスタム投稿のスラッグ
    '○○○' => $cat->slug //タクソノミーのタームのスラッグ
  );
  $posts = get_posts( $args );
  global $post; // テンプレートファイル内なら書かなくても良いみたい
  if ( $posts ) : // 該当する投稿があったら
    foreach ( $posts as $post ) ://記事のループ
      setup_postdata( $post );?>
      <a href="<?php the_permalink();?>"><?php the_title();?></a>
      <?php endforeach; //記事のループ終わり
  else : // 投稿がなかった場合?>
    このカテゴリに投稿はありません
  <?php endif;
  wp_reset_postdata();
endforeach; //カテゴリのループ終わり
?>

意外と簡単に出来るもんですね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です