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' );