固定ページで子ページのみに条件をつけたい

条件分岐の方法は色々あるけれど、固定ページの子階層だけに違うことを行う場合にどうするんだったけ?
という時の 覚書メモ

最初に固定ページで親子判定が出来るように設定する

functions.phpへ判定する関数を追記する

function is_subpage() {
    global $post;  // 現在の固定ページの詳細を読み込む

    if (is_page() && $post->post_parent) {  // 親を持つ固定ページであるかテスト
        return $post->post_parent; // 親ページの ID を返す
    } else {  // 親がなければ…
        return false; // false を返す
    }
}

上記をfunctions.phpへ追記することで、条件判定を使用したいページで呼び出す事が出来る。

使用したいページへ記述する

<?php
if (is_subpage()) {
    echo '子ページです'; //子ページだった場合に表示させたい内容を記述
}
else {
    echo '親ページです。';
}
?>

これで、例えば固定ページBlogの下層ページだけに別の表示やテーマテンプレート、その他色々条件をつけて行いたい時は

if (is_subpage('blog')) {
    echo 'Blogの子ページです'; //子ページだった場合に表示させたい内容を記述
}
else {
    echo '';
}
?>

表示させたいページに、上記のように記述することで固定ページ「blog」の下の階層ページだけに対して表示させたりすることが出来るようになる。

関数リファレンス/is page