カテゴリー名を見出しにして、そのカテゴリーに属する記事の一覧をだして、次のカテゴリーを見出しにして・・・。
そんな連続したカテゴリー毎の一覧ページを作りたいことってありますよね。
特定のカテゴリー毎の一覧をカテゴリーの数だけ作ればいいんだけど、ユーザーさんがカテゴリーを追加したら、対応できなくなってしまいます。
カテゴリーを追加したら自動で追加されるようなのを作りたいんだよ!
カテゴリーA
・記事
・記事
・記事
カテゴリB
・記事
・記事
・記事
カテゴリC
・記事
・記事
・記事
(自動で増えていく)
・記事
・記事
・記事
カテゴリ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; //カテゴリのループ終わり ?>
意外と簡単に出来るもんですね。