概要
固定ページの子ページを判定する方法を紹介。要件
- WordPressには子ページかどうかを判定する条件分岐がない。
- functions.phpに関数として登録して使用。
実装方法
固定ページの子ページか判定
functions.php に記述
function is_subpage() {
global $post;
if (is_page() && $post->post_parent) {
return true;
} else {
return false;
};
};
使用箇所に記述
if ( is_subpage() ) {
// 子ページの場合
} else {
// 子ページでない場合
}
固定ページの親ページと子ページをスラッグで判定する方法
functions.php に記述
function is_parent_slug() {
global $post;
if ($post->post_parent) {
$post_data = get_post($post->post_parent);
return $post_data->post_name;
}
}
使用箇所に記述
if (is_page('hoge') || is_parent_slug() === 'hoge') {
// スラッグが hoge ならtrue
}
ローカル環境にコードを移設した際に動作しない場合はこちら。(トラブルシューティングページへ)