WordPressで特定の親ページを持つ子孫ページ(子・孫・玄孫)全てを対象とする条件分岐
自分でも嫌になるくらい毎回忘れるのでWordPress条件分岐備忘録。
サイドバーとかh1の見出しデザインとかで、特定の親ページを持つ子ページ以下(孫・玄孫)の全ての階層ページを対象とする条件分岐方法。
これ、本当に毎回忘れてその都度調べまくってる...。
1 2 3 4 5 |
<?php if(is_page(親ページ1のID) || in_array(親ページ1のID, get_post_ancestors($post->ID))): ?> <h1>親ページ1の子孫ページ全体に表示される</h1> <?php elseif(is_page(親ページ2のID) || in_array(親ページ2のID, get_post_ancestors($post->ID))): ?> <h1>親ページ2の子孫ページ全体に表示される</h1> <?php endif; ?> |
親ページと子ページのみで良いならコッチでも可。
まずはfunctions.phpにコレを記述。
1 2 3 4 5 6 7 |
function is_parent_slug() { global $post; if ($post->post_parent) { $post_data = get_post($post->post_parent); return $post_data->post_name; } } |
で、テンプレートにコレを記述。
1 2 3 4 5 |
<?php if(is_page(親ページ1のslug) || is_parent_slug() === '親ページ1のslug'): ?> <h1>親ページ1の子ページに表示される</h1> <?php elseif(is_page(親ページ2のslug) || is_parent_slug() === '親ページ2のslug'): ?> <h1>親ページ2の子ページに表示される</h1> <?php endif; ?> |