【WORDPRESS】タクソノミーアーカイブにターム毎の記事一覧を表示する方法
タクソノミーアーカイブページにターム毎の記事一覧を表示する方法をご紹介します。
やりたいこと
タクソノミーアーカイブページにタームを表示させ、そのタームの記事の一覧を表示させます。
例えば「ニュース」というカスタム投稿タイプを作成し、「ニュースカテゴリ」というタクソノミーを作成し、「お知らせ」「サポート」「その他」というタームを作成してそのタームの記事のタイトルと記事URLを取得・表示します。
こんな感じ。
前提
カスタム投稿名:news
カスタムタクソノミー名:news_cat
ソース
ファイル:archive-news.php
<!--ターム記事一覧表示-->
<h1>ニュース</h1>
<?php
$target_post = 'news';
$target_post_cat = 'news_cat';
$cats = get_terms( $target_post_cat, $cat_args );
foreach ( $cats as $cat ):
$target_cat_slug = esc_html( $cat->slug );
$target_cat_name = esc_html( $cat->name );
?>
<h2><?php echo $target_cat_name; ?></h2>
<?php
$args = array(
'post_type' => array( $target_post ),
'taxonomy' => $target_post_cat,
'term' => $target_cat_slug,
);
$my_query = new WP_Query( $args );
?>
<?php if( $my_query->have_posts() ) : ?>
<ul>
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
<?php endforeach; ?>
<!--//ターム記事一覧表示-->