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