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

タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回は内部ブログカードと外部ブログカードのスニペット(抜粋)を同時に変更できるフィルターフック
👉cocoon_blogcard_snippet
です
フックの概要
フック名 | 発火タイミング |
---|---|
cocoon_blogcard_snippet | 内部ブログカードまたは外部ブログカード描画時 |
発火条件
内部ブログカードまたは外部ブログカード描画時に、無条件に1回発火します。
使いどころ
内部ブログカードで表示されるスニペット(抜粋)を変更できます。
例えば以下のような場面で活用できそうです。
・スニペットを一律で定型化する(例:「内容:●●●●」のフォーマットに統一
・検索性・可読性を意識して文字数制限を加える
・スニペット(抜粋)を表示させない(文字数をゼロにする)
apply_filters呼び出し元のソースコード
lib/blogcard-in.php
$snippet = apply_filters( 'cocoon_blogcard_snippet', $snippet );
lib/blogcard-out.php
$snippet = apply_filters( 'cocoon_blogcard_snippet', $snippet );
引数
$snippet:(string)スニペット(抜粋)の内容
カスタマイズコード例
スニペット(抜粋)が50文字以上の場合に50文字で切り出す例です。
function customize_cocoon_blogcard_snippet ( $snippet ) {
if (mb_strlen($snippet) > 50) {
$snippet = mb_substr($snippet, 0, 50).'...';
}
return $snippet;
}
add_filter('cocoon_blogcard_snippet', 'customize_cocoon_blogcard_snippet');
注意点
・このフックは内部・外部両方のブログカードに同じ処理を適用します。
個別に制御したい場合は、別途紹介する専用フックcocoon_internal_blogcard_snippet、cocoon_external_blogcard_snippetを利用しましょう。
・抜粋の加工処理は文字コード(特にマルチバイト文字)に注意して行うことをおすすめします。
まとめ
・cocoon_blogcard_snippet は内部・外部ブログカードのスニペットを一括で変更できるフィルターフック
・フォーマット統一や文字数制限、非表示化など幅広いカスタマイズが可能
・内部・外部カードを区別せず処理するため、用途に応じて使い分けが必要