今回、WordPressでカスタムタクソノミーのタームごとに記事を表示する方法(コード)をご紹介します。
ターム一覧の表示方法
まずはタームだけの一覧を表示するコードからみていきます。
今回はカスタム投稿を使って「お知らせページ」を作成すると仮定し、カスタムタクソノミーのスラッグを「news_cat
」とします。
コード
$terms = get_terms( 'news_cat' , $args ); |
foreach ( $terms as $term ) { |
echo '<li><a href="' .get_term_link( $term ). '">' . $term ->name. '</a></li>' ; |
解説
まずget_terms
でタクソノミーnews_cat
のタームを取得します。
その後、foreach
でターム一覧を表示します。
- get_term_link($term) … タームのリンクを取得
- $term->name … タームの名前を取得
タームごとに記事を表示する方法
ターム一覧の表示方法が分かったところで、本題であるタームごとに記事を表示するコードをみていきます。
コード
$terms = get_terms( 'news_cat' , $args ); |
<?php foreach ( $terms as $term ) : ?> |
'post_status' => 'publish' , |
'taxonomy' => 'news_cat' , |
<?php if ( $query ->have_posts() ): ?> |
<h2><?php echo $term ->name; ?></h2> |
<!-- タームに属する記事をループで表示 --> |
<?php while ( $query ->have_posts() ): $query ->the_post(); ?> |
<a href= "<?php the_permalink(); ?>" ><?php the_title(); ?></a> |
<?php wp_reset_postdata(); ?> |
解説
foreach
の中でループ処理を行い、タームに属する記事を表示します。
肝はこちらの部分です。
tax_query
パラメータを使って、タームのスラッグを取得して記事を出力します。
'taxonomy' => 'news_cat' , |
まとめ
以上、カスタムタクソノミーのターム一覧と、タームごとに記事を出力する方法をご紹介しました。
応用系もあるので、まずは基本の形を理解するようにしましょう。
最後までお読みいただきありがとうございました!

Webエンジニア
大学在学中、2021年に不動産業界向けの某IT企業にてエンジニアとしてインターン参加。同年、KOPのインターンとして参加の後、改めてスタッフとして参画。