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で特定のタームとそのタームに属する記事の一覧を表示する基本的な方法です。コードは必要に応じてカスタマイズし、特定のプロジェクトや要件に適合させてください。
コメント