WordPress 固定ページの最上親ページを取得する

WordPressで固定ページの一番上の親を取得したいときがあるかと思います。get_postなどで得られる固定ページの情報には親のIDしかなく、さらにさかのぼった情報はありません。そのため、孫まで行ってしまったときに祖父を言い当てるのには少々工夫が必要です。

WordPress 固定ページの最上親ページを取得する

作成日
2014/12/27
更新日
2016年8月16日

WordPressで固定ページの一番上の親を取得したいときがあるかと思います。get_postなどで得られる固定ページの情報には親のIDしかなく、さらにさかのぼった情報はありません。そのため、孫まで行ってしまったときに祖父を言い当てるのには少々工夫が必要です。

functions.phpに関数を作る

先祖をさかのぼり、最も上の親ページを取得する関数を作成し、functions.phpに記載することでテーマ内で利用できます。
以下をテーマの中のfunctions.phpに記載します。

使い方

初期設定は現在の投稿の最上の親、引数にIDを渡せばその投稿の最上の親のIDを取得できます。
現在の固定ページの最上親のIDを取得できます。

投稿オブジェクトで取得する場合

上記の使い方ではIDを返してそのIDから投稿オブジェクトを取得していますが、それをまとめた関数です。

使用例:固定ページ毎に最上の親のスラッグのクラスを入れる

例えばpage.php内でスラッグのクラスを入れてCSSで背景画像などを変化させたい時、子ページの場合は親ページの、孫ページの場合は祖父ページのスラッグを入れたいときがあるかと思います。

Category

Archive