【簡単】固定ページで親ページがあるか条件分岐、親ページの情報を子ページで取得する方法【wordpress】

wordpressでサイトを運用している。
現状開いてるページが親子階層のある固定ページかどうかを条件分岐したい。
親ページの情報を子ページで取得したい。
本記事ではこのような悩みを解決します。
親子階層の有無を条件分岐するコード
<?php
//現在の投稿ページ情報を取得
global $post;
//現在の投稿ページに親ページがあるか条件分岐
if(is_page() && $post->post_parent){
//親ページがあったら
}else{
//親ページが無かったら
}
?>
上記コードで現在のページが親子階層であるか判断し、条件分岐出来ます。
global $post;
で現在の投稿ページ情報を取得。
上記$post
からpost_parent
プロパティを使って親ページのIDを取得します。
if文を使って、固定ページで且つ親ページのIDがあったらという条件式を立てれば親子階層の有無を判断できます。
親ページのタイトルを取得しよう
//現在の投稿ページ情報を取得
global $post;
//親ページのID取得
$parent_id = $post->post_parent;
//親ページタイトル
$parent_title = get_post($parent_id)->post_title;
//現在の投稿ページに親ページがあるか条件分岐
if(is_page() && $parent_id){
//親ページがあったら
echo $parent_title;
}else{
//親ページが無かったら
}
最後に前章のコードと組み合わせて親ページが有ったら親のページタイトルを取得したいと思います。
get_post関数に親ページのIDを指定、post_titleプロパティを使えば取得できます。
以上の方法で解決です。
まとめ
グローバル変数の$postとget_post関数を組み合わせれば簡単に投稿ページのデータを取得できるので便利ですね。
以上で解説を終わります。
目次