特定の親ページを持つすべての子ページを対象とする条件分岐の方法
今回の条件分岐を使用する方法をご紹介します。
手順1:条件分岐をさせるための下準備
functions.phpに下記のコードを追記します。
function is_parent_slug() {
global $post;
if ($post->post_parent) {
$post_data = get_post($post->post_parent);
return $post_data->post_name;
}
}
上記コードの参考サイト
下準備はこれで完了です。
手順2:条件分岐コードを設置
条件分岐を行いたい箇所に、以下のコードを追記します。
<?php if(is_page(親ページのID) || in_array(親ページのID, get_post_ancestors($post->ID))): ?>
指定した親ページとその子ページが表示されている場合の処理を記述。
<?php else: ?>
指定した親ページとその子ページ以外のページが表示されている場合の処理を記述。
<?php endif; ?>
【親ページのID】の部分は、特定の親ページのIDに書き換えてください。
親ページのIDを調べる方法は、下記のコンテンツで解説しています。
https://takayakondo.com/individual-id/
条件分岐したい親ページが複数ある場合は、下記のように記述します。
<?php if( is_page(親ページAのID) || in_array(親ページAのID, get_post_ancestors($post->ID)) ): ?>
親ページAとその子ページが表示されている場合の処理を記述。
<?php elseif ( is_page(親ページBのID) || in_array(親ページBのID, get_post_ancestors($post->ID)) ): ?>
親ページBとその子ページが表示されている場合の処理を記述。
<?php else: ?>
上記の条件に該当しないページが表示されている場合の処理を記述。
<?php endif; ?>
条件分岐したい親ページが複数ある場合、上記の要領で条件を追加することができます。
まとめ
特定の親ページを持つすべての子ページを対象とする条件分岐を解説しました。
固定ページに親子関係があるサイトでは、使用する機会があるかもしれません。
基本的にコピぺで実装できますので、興味のある方は挑戦してみてください。
コメントを残す