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

WordPressのget_terms()を使ってターム一覧を表示する方法を解説します。

使い方としては、タクソノミーページにタームを表示したい時に使用します。

1. 親タームを取得して表示

<?php
$tax_name = 'food'; //タクソノミーを指定
$terms = get_terms( $tax_name, array('parent' => 0));
?>
<ul>
<?php foreach($terms as $term): ?>
<li><a href="<?php echo get_term_link($term->slug, $tax_name) ?>"><?php echo $term->name ?> (<?php echo $term->slug ?>)</a></li>
<?php endforeach; ?>
</ul>

出力後

<ul>
<li><a href="https://example.com/food/shoyu-ramen/">醤油ラーメン</a></li>
<li><a href="https://example.com/food/shio-ramne/">塩ラーメン</a></li>
<li><a href="https://example.com/food/miso-ramen/">味噌ラーメン</a></li>
</ul>

2. 親タームのみを表示

<?php
$tax_name = 'food'; //タクソノミーを指定
$terms = get_terms( $tax_name, array('parent' => 0));
?>
<ul>
<?php foreach($terms as $term): ?>
<?php if($term->parent == 0): ?>
<li><a href="<?php echo get_term_link($term->slug, $tax_name) ?>"><?php echo $term->name ?> (<?php echo $term->slug ?>)</a></li>
<?php endif; ?>
<?php endforeach; ?>
</ul>

タームが持っているparentを使用します。

parentは親タームがあると親タームのIDが格納されます。
親タームがない時は0が格納されます。
これを利用して、parent0の場合にターム情報を表示させることで親タームのみを表示することができます。

3. 親子孫タームを表示

wp_list_categoriesを使用するのがシンプルです。
taxonomy_nameを対象のタクソノミースラッグに変更してください。

<?php wp_list_categories('taxonomy=taxonomy_name&hierarchical=1&title_li='); ?>

Wodpress デザイナーの私的メモ帳

条件分岐

投稿関連

固定ページ関連

カテゴリー関連

タクソノミー、ターム関連

プラグイン

その他

MW WP Form

  • このエントリーをはてなブックマークに追加

プロフィール

kura

WEBで食べていきたいデザイナーです。 趣味でアプリ開発(ペア、デザイン担当)やNuxt.jsやらをいじってますが、やばいな~と感じつつネットの波に取り残されないようにワカッタこと、キヅイタことをカキカキします。