cocoonフック調査~add_lightbox_propertyの使い方と活用例
タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回は画像設定がlightboxの時に本文タグを編集できるフィルターフック
👉add_lightbox_property
です
フックの概要
| フック名 | 発火タイミング |
|---|---|
| add_lightbox_property | 本文表示時 |
発火条件
Cocoon設定 →「画像」→「画像の拡大効果」が lightbox に設定されている場合、本文描画時に発火します。
ただし挙動に癖があり、
・画像ブロックが本文内に なくても発火 する
・逆に「画像の拡大効果」が lightbox でない場合、
→ 画像ブロックに lightbox 用リンクを付けても 発火しない
という特徴があります。
使いどころ
正直に言うと、使いどころが分かりません。
理由:
・Cocoon設定が lightbox でさえあれば無条件に本文をフィルタリングしてしまう
・本文中に画像ブロックが存在するかどうかは無関係
など、用途がやや不明瞭だからです。
推測としては、
- ・旧エディタ時代に、画像へ lightbox 属性を付与するための名残機能
- ・もしくは 本文 HTML の後処理用途として用意されたが、実際には使いどころがない
と考えられます。
何の目的で存在しているのか、現時点では実用的なケースが見当たりません。
apply_filters呼び出し元のソースコード
lib/image.php
$content = apply_filters('add_lightbox_property', $content);
引数
$content:(string)本文のHTMLタグ
カスタマイズコード例
function customize_add_lightbox_property ( $content ) {
$content = ~~ //タグの書き換え
return $content;
}
add_filter('add_lightbox_property', 'customize_add_lightbox_property' );
注意点
・このフックは lightbox設定に依存して発火するため、一般的な本文加工として使うのは不向きな気がします
・画像が本文内に存在しない場合でも発火するため、意図せず本文全体を書き換えてしまう可能性があります
・現行WordPressでは Lightbox を標準実装ているため、役割自体が今後薄くなる可能性があります
まとめ
・add_lightbox_property は、Cocoonの「画像の拡大効果」が lightbox の時に本文を編集するフック
・ただし挙動に癖があり、実用的な使いどころが見つけづらい
・過去の仕様の名残の可能性が高い
・実際の本文加工には the_content を使うほうが適していると思われます