WordPressでは、特定のターム(カテゴリーやタグなど)とそのタームに属する記事の一覧を表示することが可能です。忘れやすいのでメモです。
1. ターム一覧の表示
まずはターム一覧を表示する方法を見ていきましょう。以下のコードは、特定のタクソノミー(ここでは’category’)のすべてのタームを一覧表示します。
<?php
$taxonomy = 'category'; // ターム一覧を表示したいタクソノミー
$terms = get_terms(array(
'taxonomy' => $taxonomy,
'hide_empty' => false,
));
if (!empty($terms) && !is_wp_error($terms)) :
foreach ($terms as $term) :
echo '<h2>' . $term->name . '</h2>';
// ここで各タームの記事一覧を表示
endforeach;
endif;
?>
2. タームごとの記事一覧の表示
次に、各タームに属する記事の一覧を表示します。これには、上記のforeachループ内でWP_Queryを使います。
<?php
$taxonomy = 'category'; // ターム一覧を表示したいタクソノミー
$terms = get_terms(array(
'taxonomy' => $taxonomy,
'hide_empty' => false,
));
if (!empty($terms) && !is_wp_error($terms)) :
foreach ($terms as $term) :
echo '<h2>' . $term->name . '</h2>';
$args = array(
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => $taxonomy,
'field' => 'slug',
'terms' => $term->slug,
),
),
);
$query = new WP_Query($args);
if ($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();
echo '<h3><a href="' . get_permalink() . '">' . get_the_title() . '</a></h3>';
// 必要に応じて他の投稿データ(投稿日、抜粋など)を表示します
endwhile;
wp_reset_postdata();
else :
echo '<p>該当する投稿がありません。</p>';
endif;
endforeach;
endif;
?>
このコードは、各カテゴリーの名前とそのカテゴリーに属する記事の一覧を表示します。表示する内容はカスタマイズ可能で、タイトル以外にも投稿日、抜粋、フィーチャーイメージなどを表示することができます。
以上がWordPressで特定のタームとそのタームに属する記事の一覧を表示する基本的な方法です。コードは必要に応じてカスタマイズし、特定のプロジェクトや要件に適合させてください。



コメント