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のfeed取得先がEntity: line 2: parser で見れない時の対処方法

2021.10.27
257
WordPress プログラミング

【簡単】wordpressプラグインで投稿記事を非公開予約する方法

2022.01.05
1529
HTMLCSS WordPress プログラミング

wordpressのメディアから任意の画像ファイルを素早く呼び出す方法【簡単】

2021.12.23
201
WordPress

トップやアーカイブの記事一覧で1ページ目と2ページ目以降で条件分岐する方法

更新日:2019.11.28
209