WordPress 親・先祖ターム情報の表示方法
最終更新日 - 公開日 2018.06.26
by
WordPress でタームの親や先祖タームの情報を取得して表示する方法を紹介します。
例えば、孫タームのアーカイブページで親タームや、先祖タームの名前などの情報を表示したいときに便利な方法です。
タームアーカイブページでタームの親や先祖タームの情報を取得
タームアーカイブページでタームの親や先祖タームの情報を取得するには、taxonomy.php
内で get_queried_object_id()
でタームIDを取得、get_ancestors()
で祖先オブジェクトの配列を取得します。
例えば、タクソノミースラッグが product
のとき、現在表示しているタームアーカイブページに親や先祖タームの情報を表示するには、次のコードを taxonomy.php
に追加します。
<?php // 表示しているタームアーカイブの親・先祖タームの情報を取得して表示
$term_id = get_queried_object_id(); // タームのIDを取得
$ancestors = get_ancestors($term_id, 'product'); // タクソノミースラッグを指定してタームの配列を取得
$ancestors = array_reverse($ancestors); // 子親の順番で表示されるので、親子の順番に変更
foreach( $ancestors as $ancestor ) { // 配列から個々の値を取り出す
echo $ancestor; // タームID
$parent_term = get_term($ancestor, 'product'); // タームIDとタクソノミースラッグを指定してターム情報を取得
echo $slug = $parent_term->slug; // タームスラッグを取得
echo $name = $parent_term->name; // ターム名を取得
echo $desc = $parent_term->description; // タームディスクリプションを取得
}
?>
タームのIDを取得している get_queried_object_id()
は taxonomy.php で使用する関数ですが、
タームIDが別の方法で取得できるのであれば、どのテンプレートでも同じように情報を取得できます。
その場合は get_queried_object_id()
の部分を次のように差し替えましょう。
$term_id = 'タームID';
まとめ
WordPress でタームの親や先祖タームの情報を取得して表示する方法を紹介しました。