説明
body_class は、body タグに付くクラス名を、追加・変更できるフィルターです。
基本構文
apply_filters( 'body_class', string[] $classes, string[] $css_class )
引数
$classes:クラス名の配列$css_class:追加指定されたクラス名
戻り値
クラス名の配列を返します。
使い方(サンプル)
add_filter( 'body_class', function( $classes ) {
$classes[] = 'my-class';
return $classes;
} );
注意点
- 配列を返します。文字列を返すと動作しません。
実務での使いどころ
<body>に、独自のクラスを、追加するとき。- ページごとに、見た目を切り替えるための、クラスを付けるとき。
よくあるミスと対処
- 配列を返していない。受け取った配列に、追加して返す。
- クラスが、
<body>に反映されない。テーマの<body>に、body_class()を、呼んでいない。 - 文字列を、そのまま追加している。配列に、要素として追加する。
NG例
add_filter( 'body_class', function ( $classes ) {
return 'my-class'; // 配列ではなく、文字列を返している
} );
OK例
add_filter( 'body_class', function ( $classes ) {
if ( is_front_page() ) {
$classes[] = 'is-top';
}
return $classes;
} );
使い分け早見表
| 関数・フィルター | 役割 |
|---|---|
body_class フィルター |
<body> のクラスの配列を、加工する |
body_class() |
<body> 用のクラスを、出力する |
post_class フィルター |
投稿のクラスの配列を、加工する |

コメント