やまだ
こんにちは、山田です。
今回は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 タクソノミータームの子ターム一覧を取得して表示する
ありがとうございました!
まとめ
何回やっても、なんだったっけ…ってなるワードプレス関数。
とくにカスタム投稿・カスタムタクソノミーあたりはもうごっちゃごちゃです。
ただワードプレスは調べれば出てくるのがありがたい…。
引き続き、がんばろうと思います。
それでは!