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