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

タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回はデフォルトではH2見出しの前に表示される本文中広告の表示位置を変更できる
insertion_heading_regexp
です。
フックの概要
フック名 | 発火タイミング |
---|---|
insertion_heading_regexp | テーマ起動時やウィジェット処理時などに1回発火 |
フックの発火条件
このフックは、ライフサイクルの初期段階やウィジェット処理で1回必ず発火します。
内部的には、本文中広告を挿入する際に、どのタグの直前に広告を差し込むかを判定するために利用されています。
使いどころ
Cocoonでは、本文中広告はデフォルトで H2見出しの直前 に表示されます。
insertion_heading_regexp フックを使うことで、この対象タグを変更できます。
このフックのデフォルト値は正規表現 /\<h2/i
です。
これを変更すれば、H3や他のHTMLタグなど、任意の箇所に広告を表示させることが可能です。
例えば、見出しレベルを下げたページや特殊なHTML構造の記事でも、狙った位置に広告を表示させるといった調整ができます。
極論、タグでなくとも正規表現で指定された文字列で引っかかれば表示されます。
apply_filters呼び出し元のソースコード
lib/ad.php
define('H2_REG', apply_filters('insertion_heading_regexp', '/<h2/i'));
引数
$insertion_heading_regexp:(string)正規表現の文字列(デフォルト:/<h2/i)
カスタマイズコード例
add_filter('insertion_heading_regexp', function (){
return '/<h3/i';
});
// 公式HPより引用(https://wp-cocoon.com/insertion-heading-regexp/)
注意点
・正規表現のマッチ箇所が多いと、予期しない位置にも広告が表示される可能性があります。
・タグだけでなく、本文テキストにも一致すれば表示されるため、指定は慎重に行ってください。
・HTML構造が複雑な記事では、想定外の位置に広告が入る場合がありそうです。
まとめ
・insertion_heading_regexp は、本文中広告を挿入する見出しや位置を変更できるフィルターフック。
・デフォルトはH2見出し直前。
・正規表現を書き換えることで任意のタグや文字列直前に広告を差し込める。
・マッチ条件は慎重に設定し、実際の表示位置を確認しながら使うのが望ましい。