body_class()とpost_class()〜WordPress

Tips

WordPressで動的にクラス名をつけてくれるテンプレートタグにはbody_class()とpost_class()があります。
body 要素用のテンプレートタグが「body_class()」です。また、投稿のテンプレートタグが「post_class()」です。
「post_class()」はループ内で使用するのがポイントです。

それぞれ、複数のクラス名を吐き出してくれますが、自分の独自のクラスを吐き出させることもできます。
その場合は、引数に希望するクラス名を指定します。複数の独自のクラスを使いたい場合は半角スペースで区切って指定します。
bodyに.my-top と .my-bookを指定する例

body_class('my-top my-book');

ある投稿記事の出力要素に.my-content と .my-sectionを指定する例

post_class('my-content my-section');
スポンサーリンク

不要なクラス名を吐き出させない方法

「body_class()」や「post_class()」を使うと、自分にとって不要なクラス名も吐き出されます。
不必要なクラス名を書き出さないようにするにはadd_filterをfunctions.phpに記述します。
array()の引数にカンマで区切りながら消したいクラス名を記述します。

下記はその例です。

post_class()の場合

function remove_class( $classes ) {
	return array_diff( $classes, array( 'hentry' ,'status-publish','type-page','page') );
}
add_filter( 'post_class', 'remove_class' );

body_class()の場合

function remove_class_body( $classes ) {
	return array_diff( $classes, array( 'page') );
}
add_filter( 'body_class', 'remove_class_body' );

タイトルとURLをコピーしました