固定ページの最上位のスラッグを取得する方法
functions.php
function my_toplevel_slug() {
global $post;
if(is_page()):
if($post -> post_parent != 0 ): //親がいる場合
$ancestor = array_pop( get_ancestors($post->ID, 'page'));
return esc_html(get_page_uri($ancestor));
else: //親がいない場合は自身を返す
return esc_html($post->post_name);
endif;
endif;
}
固定ページのbodyに現在のページと最上位のクラスを追加する例
WordPressであらかじめ用意されている"body_class"に加えて、固定ページでは現在のページスラッグと最上位の親スラッグを追加する例です。
header.php
<body <?php
body_class(my_toplevel_slug().' '.$post->post_name); ?>>
<?php else: ?>
<body <?php body_class(); ?>>
<?php endif; ?>
最上位のクラス名が"company"の場合の判定
page.php
<?php if(is_page('company') || my_toplevel_slug() === 'company) {
echo '会社概要';
} else {
echo '会社概要以外';
} ?>
本サイトの内容に誤りや不正確な記述がある場合やサンプルに基づくいかなる結果も一切の責任を負いかねますので、あらかじめご了承ください。