現在開いてる子カテゴリーページで親カテゴリを親子階層順に全て取得する方法【WordPress】

現在開いてる子カテゴリページで親カテゴリを親子階層順に全て取得したい。
本記事ではこのような悩みを解決、実装方法について解説します。
親カテゴリを取得するコード
<?php
//現在開いてるカテゴリページのカテゴリIDを取得
global $cat;
//現在開いてるカテゴリページの親カテゴリIDを親子順に全て取得
$cat_parent_ids = array_reverse(get_ancestors($cat, 'category'));
//現在開いてるカテゴリページの親カテゴリを全て出力
foreach ($cat_parent_ids as $cat_parent_id) :
$cat_parent = get_category($cat_parent_id, 'category');
?>
<!-- カテゴリ名 -->
<p><?= $cat_parent->name; ?></p>
<!-- リンク先 -->
<a href="<?= get_category_link($cat_parent_id); ?>"><?= $cat_parent->name; ?></a>
<?php endforeach; ?>
親カテゴリを全て取得するコード例です。
global $cat;
で現在開いてるカテゴリページのIDを取得。
get_ancestors関数を使い、引数に現在開いてるカテゴリページのIDを入れることで、親子階層順に親カテゴリーIDを全て取得できます。
子から親ではなく、親から子で順番に取得したい場合はarray_reverse関数でget_ancestors関数を囲います。
あとはget_the_category関数を使って、取得した親カテゴリIDを引数に設定。
foreachで親カテゴリの数だけループ。
ループ内で親カテゴリ情報を出力すればOKです。
以上で実装完了です。
まとめ
親カテゴリページへの導線設置などにお役立てください。
以上で解説を終わります。
目次