WordPress 親・先祖ターム情報の表示方法

WordPress 親・先祖ターム情報の表示方法

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 でタームの親や先祖タームの情報を取得して表示する方法を紹介しました。