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

タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回は内部ブログカードのタイトルを変更できるフィルターフック
👉cocoon_internal_blogcard_title
です
フックの概要
フック名 | 発火タイミング |
---|---|
cocoon_internal_blogcard_title | 内部ブログカード描画時 |
発火条件
内部ブログカード描画時に、無条件に1回発火します。
使いどころ
内部ブログカードで表示されるタイトルを変更できます。
公式サイトの例では、長すぎるタイトルを指定文字数でカットする用途が紹介されています。
他にも以下のような場面で活用できそうです。
・タイトルを一律で定型化する(例:「タイトル:●●●●」のフォーマットに統一
・ブランド名や接頭辞を付与する
・検索性・可読性を意識して文字数制限を加える
下の記事で似た機能であるcocoon_blogcard_titleを紹介していますが、cocoon_blogcard_titleは内部ブログカードと外部ブログカードを一括で変換します。
こちらのcocoon_internal_blogcard_titleは外部ブログカードには影響しません。
apply_filters呼び出し元のソースコード
lib/blogcard-in.php
$title = apply_filters('cocoon_internal_blogcard_title',$title);
引数
$title:(string)ブログカードのタイトル
カスタマイズコード例
タイトルが32文字以上の場合に32文字で切り出す例です。
add_filter('cocoon_internal_blogcard_title', function ($title){
if (mb_strlen($title) > 32) {
$title = mb_substr($title, 0, 32).'...';
}
return $title;
});
// 公式サイトから引用
注意点
・このフックは内部のブログカードにのみ処理を適用します。
外部ブログカードも一括に制御したい場合はcocoon_blogcard_titleを利用しましょう。
・フックでタイトル文字列を書き換えるため、意図しない文字化けやフォーマット崩れが起こらないよう、マルチバイト文字を扱う場合は mb_strlen / mb_substr を使うのが安全です。
まとめ
・cocoon_internal_blogcard_titleは内部ブログカードのタイトルを変更できるフィルターフック。
・文字数制限やフォーマット統一などに活用できる。
・外部用の個別フック、内部・外部同時制御のフックもあるので、ケースに応じて使い分けが必要。