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

タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回は内部ブログカードのサムネイル画像サイズを変更できるフィルターフック
👉get_blogcard_thumbnail_sizeとget_internal_blogcard_thumbnail_size
です
フックの概要
フック名 | 発火タイミング |
---|---|
get_blogcard_thumbnail_size | 内部ブログカード描画時 |
get_internal_blogcard_thumbnail_size | 内部ブログカード描画時 |
発火条件
内部ブログカード描画時に、無条件に1回発火します。
使いどころ
どちらのフックも、内部ブログカードのサムネイル画像サイズを変更できます。
表示領域に応じて適切なサムネイルサイズを指定することで、デザインの最適化や無駄なデータ転送の削減が可能になります。
apply_filters呼び出し元のソースコード
lib/blogcard-in.php
function get_internal_blogcard_thumbnail_size(){
$thumbnail_size = apply_filters('get_blogcard_thumbnail_size', THUMB160);
return apply_filters('get_internal_blogcard_thumbnail_size', $thumbnail_size);
}
引数
$thumbnail_size:(string)画像サイズの名称
カスタマイズコード例
まずinitフックでadd_image_size()を使ってカスタム画像サイズを定義します。
その後、get_blogcard_thumbnail_size または get_internal_blogcard_thumbnail_size フィルターでサイズを変更できます。
function init_plugin () {
add_image_size( 'blogcard_thumbnail_size', 10, 10 , true );
}
add_action('init', 'init_plugin' );
function customize_get_blogcard_thumbnail_size ( $thumbnail_size ) {
return 'blogcard_thumbnail_size';
}
add_filter('get_blogcard_thumbnail_size', 'customize_get_blogcard_thumbnail_size');
function customize_get_internal_blogcard_thumbnail_size ( $thumbnail_size ) {
return 'blogcard_thumbnail_size';
}
add_filter('get_internal_blogcard_thumbnail_size', 'customize_get_internal_blogcard_thumbnail_size');
注意点
・add_image_size() で新しい画像サイズを設定した後に画像を再生成しないと、意図したサイズでは表示されません。
・元のソースコードではget_blogcard_thumbnail_sizeの直後にget_internal_blogcard_thumbnail_sizeが呼び出されており、かつここ以外では呼び出されないため、両方を使い分ける意義はやや不明確です。get_internal_blogcard_thumbnail_sizeだけで事足りる気がします。
まとめ
・get_blogcard_thumbnail_size / get_internal_blogcard_thumbnail_size は内部ブログカードのサムネイル画像サイズを変更できるフィルターフック。
・add_image_size() で事前にサイズを定義し、フィルターフックで切り替える運用が基本。
・実運用では get_internal_blogcard_thumbnail_size を使えば十分なケースが多いと思われる。