cocoonでクラスを追加できるフィルターフックまとめ

タナビーの高梨です。
WordPressのテーマであるcocconのフィルターフックに関して、クラスを追加できるフックを何度かにわたって紹介してきました。
この記事ではそれらを総括してみたいと思います。
まず結論から行きますが、あまり建設的な結論ではありません。
結論
- <body>に追加するフックのみ微妙に他と仕様が違う
- これらのフックを使って独自にクラスを追加する必要があるシーンは限定的と思われる
フックの種類とクラスを追加できるエレメント
フック名からそれぞれの詳細解説記事にリンクを張っています。
対象のエレメントにクラスを追加
すべてのフックとも機能は同じで、対象となるエレメントにクラスを追加、あるいは削除できます。
使い方は「body_class_additional」のみ引数が少し異なります。
以下はbody_class_additionalを利用して<body>タグにadditionalClassというクラスを追加するコードです。
(引数は配列型)
function customize_body_class_additional( $classes ) {
$classes[] = 'additionalClass';
return $classes;
}
add_filter( 'body_class_additional', 'customize_body_class_additional' );
他は全て同じパターンです。
(引数は文字列型)
function ファンクション名( $classes ) {
$classes[] = 'additionalClass';
return $classes;
}
add_filter( 'フック名', 'ファンクション名' );
見ると分かるように、bodyのみclassesの引数が配列型で、他は文字列型になっています。
使いどころ
これらのフックを使う必要性があまり思いつきません。
body_class_additionalに関してはWordPressの標準で「body_class」というフックが全く同じ機能で提供されているので、そちらを使えば良いと思われます。
その他のフックは、対象のエレメントにすでにidやクラスが付与されているため、CSSで直接指定すれば事足ります。
例えば「管理者だったら」などの条件によって付けたり付けなかったりを制御したいというような使い方も考えられるかと思いましたが、その場合は基本的には他のエレメントにそれなりのクラスが付いているため、合わせ技でいけるのではないかと思います。
どうしても他との合わせ技で判別できないような条件の場合にのみ使えるといった限定的な使い方になりそうです。
あるいは、何らかの意図によりcocoonで付けているクラスを削除したい場合には使えると思います。