Written by Kasumi

現在開いてる子カテゴリーページで親カテゴリを親子階層順に全て取得する方法【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です。

以上で実装完了です。

まとめ

親カテゴリページへの導線設置などにお役立てください。

以上で解説を終わります。

目次

関連記事

WordPress プログラミング

WordPressで固定ページの名称を変更する方法

更新日:2022.04.23
3027
WordPress

WordPressで特定のページのみURL末尾スラッシュを追加もしくは削除する方法

2023.10.05
675
WordPress

サイト制作でよく使うWPテンプレートタグ【まとめ】

更新日:2019.11.28
811
WordPress

WordPressログイン画面のロゴを変更する方法

2022.07.18
1205