cocoonフック調査~get_the_snippetの使い方と活用例
タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回は記事抜粋を取得する際にその内容を変更できるフィルターフック
👉get_the_snippet
です
フックの概要
| フック名 | 発火タイミング |
|---|---|
| get_the_snippet | 記事抜粋の取得時 |
条件
記事抜粋を取得する際に無条件に発火します。
使いどころ
エントリーカードや関連記事カードに表示される抜粋の内容を編集できます。
抜粋の内容を変更したいシーンがあまり思い浮かびません。
しかしながら、返り値にHTMLのタグを返せるようです。
例えば関連記事カードの抜粋にデザインを付けたい、といった場合に使えそうです。
引数
$description:(string)抜粋内容
$tmp_post:(string)本文内容
カスタマイズコード例
無条件に抜粋の内容を「midified snippet」に変更し、全体をstrongタグで囲う例です。
実運用では無条件変更は現実的ではないため、条件分岐を組み合わせることが前提になるでしょう。
function customize_get_the_snippet ( $description, $tmp_post ) {
$description = '<strong>modified snippet</strong>';
return $description;
}
add_filter('get_the_snippet', 'customize_get_the_snippet', 10, 2 );
注意点
・抜粋が表示されるすべての箇所に影響する
・HTMLタグを返す場合、CSS側の設計と整合性を取る必要がある
・文字数制御やエスケープ処理に注意が必要
まとめ
・get_the_snippetは、Cocoonにおける抜粋生成処理の最終段階で介入できるフィルターフック
・デザインカスタマイズや特定条件下での抜粋制御を行いたい場合に有効