【WordPress】指定したタクソノミーの親ターム・子タームを出力する

WordPress

【WordPress】指定したタクソノミーの親ターム・子タームを出力する

やまだ
こんにちは、山田です。

今回はget_termsを使って、指定したタクソノミーの親ターム・子タームを出力する時のメモ。

何回やっても見事なまでに忘れて検索するハメになるので、自分用に残しておきます。

 

スポンサーリンク

get_terms()で実装

get_terms()は、第一引数にタクソノミースラッグ・第二引数にオプションを指定する事で、ターム情報が出力できるワードプレス関数。

この関数を使って、下記のように設定したタクソノミーの親ターム・子タームを出力したいとします。

  • タクソノミー:フルーツ [fruits]
  • 親ターム:柑橘類 [citrus]
  • 子ターム1:オレンジ [orange]
  • 子ターム2:ゆず [yuzu]
  • 子ターム3:レモン [remon]

そのための実装コードがこちら。

<?php
  $taxonomy= 'fruits'; // タクソノミー
  $parent_slug = 'citrus'; // 親タームスラッグ
  $parent = get_terms( $taxonomy, array('slug' => $parent_slug )); // 親ターム情報
  $children = get_terms( $taxonomy, array('parent' => $parent[0]->term_id)); // 子ターム情報
?>

<? // 親ターム名を表示 ?>
<h2><?php echo $parent[0]->name; ?></h2>

<? // 子ターム情報を表示 ?>
<ul>
  <?php foreach ( $children as $term ): ?>
  <li>
   <a href="<?php get_term_link($term); ?>">
      <?php echo $term->name; ?>
    </a>
  </li>
  <?php endforeach; ?>
</ul>

これで、親ターム名と子ターム名+子タームのリンクが出力できるはず。

今回は子タームにリンクをつけたかったので、get_term_link($term)でリンクを出力させました。

 

子タームの情報はこの他にも、以下を指定すれば情報が出力できます。

  • タームID:$term->term_id;
  • ターム説明:$term->description;
  • スラッグ:$term->slug;
  • タクソノミー名:$term->taxonomy;
  • 親タームID:$term->parent;
  • 記事数:$term->count;

以下のサイトが大変参考になりました。

WordPress タクソノミータームの子ターム一覧を取得して表示する

ありがとうございました!

 

まとめ

何回やっても、なんだったっけ…ってなるワードプレス関数。

とくにカスタム投稿・カスタムタクソノミーあたりはもうごっちゃごちゃです。

ただワードプレスは調べれば出てくるのがありがたい…。

引き続き、がんばろうと思います。

それでは!

-WordPress
-, ,