WordPressで親ページと子ページを区別する(分岐する)方法!
親ページと子ページを区別して表示を変えたり、処理を分岐するような場合にどのような方法をとるのかをメモしておきます。
親ページを子ページを区別するには、
「そのページに親ページがあるかないか」
で分岐すればよいことになります。
つまり、
「親ページがあれば、そのページは子ページ」
「親ページがなければ、そのページは親ページ」
ということですね。
では、判定はどうやるのか。
それには、$postを使用します。
$postの中には記事やページの情報がたくさん格納されたオブジェクトが代入されています。
その中の$post->post_parentには親ページのIDが格納されています。
IDはデータベースのテーブルの各レコードに付与されるプライマリーキーidですから、
通常0ではありません。
そこで、親ページがなかった場合に$post->post_parentには0を格納し親ページがないことを知らせるようになっています。
単純な話、
$post->post_parent == 0 ならそれは親ページ
$post->post_parent == 0以外 ならそれは子ページ
ということです。
したがって、分岐は以下のようにすればよいでしょう。
if($post->post_parent == 0){//親ページの場合 //処理 }else{//子ページの場合 //処理 }
親ページのIDを調べておけば、特定の親ページのみ処理を変えるようなプログラムも書けますね。