Written by Kasumi

【WordPress】現在開いてる親タームページから子ターム事に記事一覧を取得・出力する方法

WordPressで現在開いてる親タームページから子ターム情報を取得。

登録されてる子ターム毎に記事一覧を出力する方法を知りたい。

本記事ではこのような悩みを解決。

実装方法について解説します。

子ターム記事一覧を取得・出力する

      <?php
      $terms = get_terms('タクソノミー名', 'hide_empty=0&parent=' . get_queried_object_id()); // タクソノミー・現在のタームIDを指定
      foreach ($terms as $term) : //登録されてる子タームを全て出力
      ?>
        <h2>
          <?php echo  $term->name; //子ターム名 
          ?>
        </h2>
        <?php
        $args = array(
          'post_type' => 'カスタム投稿タイプ名', //投稿タイプを指定
          'posts_per_page' => '-1', //表示件数
          'post_status' => 'publish',
          'tax_query' => array(
            'relation' => 'OR',
            array(
              'taxonomy' => 'タクソノミー名', //タクソノミー名を指定
              'field' => 'slug',
              'terms' => $term->slug,
            ),
          ),
        );
        $the_query = new WP_Query($args);
        ?>
        <?php if ($the_query->have_posts()) : ?>
          <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
            <!-- 子ターム記事 -->
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
          <?php endwhile; ?>
        <?php else : ?>
        <?php endif; ?>
      <?php endforeach; ?>

現在開いてる親タームページから子ターム記事一覧を取得・出力するサンプルコードです。

カスタム投稿タイプ名・タクソノミー名を実装環境に合わせ変更してください。

コードの内訳は以下の通りです。

まず、get_terms関数を使いパラメータにhide_empty=0・parent=’ . get_queried_object_id()を指定。

これで現在のタームの子ターム情報を取得。

foreachで子タームの数だけループさせます。

foreachループ内でwp_query関数を使い、子タームの記事情報を出力します。

以上で実装完了です。

まとめ

子ターム毎に記事一覧を分けて出力したい時に便利です。

以上で解説を終わります。

目次

関連記事

WordPress

【WordPress】アーカイブで記事コンテンツを取得。コンテンツから任意のHTMLタグのみ取得する方法

2022.12.06
1383
WordPress

【All in One SEO】 一部のページでは出力しないようにする方法

2022.06.15
2317
WordPress プログラミング

Yoast SEOのschema(スキーマ)設定を無効化する方法

2022.04.03
2709
WordPress プログラミング

【ワードプレス】記事の公開日・更新日が同じとき、更新日を非表示にする方法

2020.06.25
1718