[WordPress]body_class()に独自のクラスを追加する

  • 公開日:2019/10/18
この記事は最終更新日から4年以上が経過しています。
<body <?php body_class(); ?>>

上記のように記述することで、bodyタグに自動的にクラスを付与することができるbody_class()に独自のクラスを追加する方法です。

functions.phpで対応します。
例えば特定のカテゴリーページに「my_sample」という独自のクラスを付ける場合は以下のように記述します。

add_filter('body_class', 'custom_body_class');
function custom_body_class( $classes ) {
    if ( is_category('カテゴリー名') ) {
        $classes[] = 'my_sample';
    }
    return $classes;
}

特定の固定ページ(ページIDが11)とその子ページに独自クラスを付与したい場合は以下のように記述します。

add_filter('body_class', 'custom_body_class');
function custom_body_class($classes)
{
	if (is_page())
	{
		global $post;
		$current_id = $post->ID;
		$parent_id = $post->post_parent; // 親ページのIDを取得

		if ($current_id == 11 || $parent_id == 11) 
		{
			$classes[] = 'my_page_group';
		}
	}
	return $classes;
}

$classesに付与したいクラス名を追加します。あとは条件をいかに指定するかです。