cocoonフック調査~get_additional_internal_blogcard_classesの使い方と活用例

タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回は内部ブログカードの<div>(クラスにinternal-blogcardがつくもの)に付くクラスを任意に変更できるフィルターフック
👉get_additional_internal_blogcard_classes
です。
フックの概要
フック名 | 発火タイミング |
---|---|
get_additional_internal_blogcard_classes | 内部ブログカードが表示されるタイミングで1回づつ発火する |
フックの発火条件
cocoon設定のブログカードタブで内部ブログカード設定の「ブログカード表示」が有効になっている場合、内部ブログカードが表示され、無条件に1回発火します。
使いどころ
blogcardとinternal-blogcardのついたクラスの<div>に独自のクラスを追加することができます。
ただ、そもそも内部ブログカードにはblogcardやinternal-blogcardというクラスが付いているため、CSSを当てるだけならこのフックを使う意味があまりありません。
あえてあるとすれば、テーマ本体CSSと衝突しないスコープを作るといったところでしょうか。
apply_filters呼び出し元のソースコード
lib/additional-classes.php
function get_additional_internal_blogcard_classes($option = null){
/// 省略 ///
return apply_filters('get_additional_internal_blogcard_classes', $classes);
}
引数
$classes:(string)クラス名のリスト。
※body_class_additionalではarrayですが、こちらはstringです。
カスタマイズコード例
以下は無条件に各タグに’additionalClass’というクラスを追加する例です。
function customize_get_additional_internal_blogcard_classes( $classes ) {
$classes .= ' additionalClass';
return $classes;
}
add_filter( 'get_additional_internal_blogcard_classes', 'customize_get_additional_internal_blogcard_classes' );
注意点
・個別出し分けはできない
フィルターには内部カードの「種別」や文脈は渡りません。一律で同じクラスが付く前提です。
・戻り値は文字列
追加時は 先頭の半角スペースを必ず付ける(付け忘れるとクラス名が連結されます)。
まとめ
・get_additional_internal_blogcard_classes は 内部ブログカードに共通の追加クラスを付けるフック。
・一律に同じクラスが付くため個別装飾の用途には不向き
・使いどころは「サイト固有の共通クラスを足して、CSS/JSのスコープや計測の目印にする」ことに限定されると思われます。