【WordPress】特定の親ページと、その子ページにのみ条件を分岐する
WordPressでWebサイトを作る際、特定の親ページと、その子ページにのみ条件を追加したい時があります。
私の場合は、ナビゲーションメニューのページ名に「current」などのクラス名を付与したい時に使います。
条件分岐の方法
functions.phpと条件分岐をしたいテンプレートファイルに以下のコードを記述していきます。
functions.php
function is_parent_slug() {
global $post;
if ($post->post_parent) {
$post_data = get_post($post->post_parent);
return $post_data->post_name;
}
}
functions.phpに上記コードを追記してください。
コードを簡単に説明すると、親ページを持つ子ページの場合、親ページのスラッグを取得しています。
条件を追加するテンプレートファイルに次のコードを記述する
<?php
if (is_page('親ページのスラッグ') || is_parent_slug() === '親ページのスラッグ'){
//ここに条件を追加する
}?>
次に条件を追加するファイルに上記のコードを追記します。
「ここに条件を追加する」と書かれている箇所に、指定したい条件を追加すれば分岐することができます。
実際にナビゲーションメニューのクラス名に「current」を付与したい場合は、次のコードのように使います。
<li <?php if(is_page('recruit') || is_parent_slug() === 'recruit'){ echo 'class="current"'; } ?>>
<a href="<?php echo home_url(); ?>/recruit/">RECRUIT</a>
</li>
以上、よかったら参考にしてみてください。