WordPress

【WordPress】特定の親ページと、その子ページにのみ条件を分岐する

WordPress

【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>

以上、よかったら参考にしてみてください。

あなたにおすすめの記事