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

タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回はインデックスページの記事一覧内の広告表示位置を制御できるフィルターフック
is_index_middle_ad_visible
です。
フックの概要
フック名 | 発火タイミング |
---|---|
is_index_middle_ad_visible | トップページ記事一覧表示時に発火 |
フックの発火条件
本フックはトップページ記事一覧表示の記事ごとに無条件に発火します。
使いどころ
デフォルトでは、3番目と4番目の記事の間にのみ広告が表示されます。
しかし、このフックを使うことで、広告の表示位置を柔軟に制御可能です。
例えば、広告を別の位置に表示したり、複数の位置に表示したりといった調整が行えます。
またデフォルトでは下記条件を満たしている場合にのみ表示されますが、これを無視して制御できます。
・cocoon設定で広告のミドル表示を有効にしている
・ページネーションの最終ページではない
apply_filters呼び出し元のソースコード
lib/ad.php
$is_visible = apply_filters('is_index_middle_ad_visible', $is_visible, $count);
引数
$is_index_middle_ad_visible:(boolean)その記事の後にウィジェット表示するか。true:する、false:しない。
$count:(integer)何番目の記事か
カスタマイズコード例
以下は偶数番目の記事の下に広告を表示する例です。
function customize_is_index_middle_ad_visible( $is_visible, $count ) {
if( $count % 2 == 0 ) {
$is_visible = true;
} else {
$is_visible = false;
}
return $is_visible;
}
add_filter( 'is_index_middle_ad_visible', 'customize_is_index_middle_ad_visible', 10, 2 );
注意点
・記事番号の判定を間違えると、意図しない位置に広告が表示される場合があります。
・過剰な広告表示はユーザー体験を損なう可能性があるため注意してください。
・デフォルト条件(ミドル表示有効・最終ページでないなど)を意図的に無視する場合は影響範囲を確認することをおすすめします。
まとめ
・is_index_middle_ad_visible は、インデックスページ記事一覧内の広告表示位置を柔軟に制御できるフィルターフック。
・発火タイミングはトップページ記事一覧の各記事ごと。
・事番号や条件を元に表示/非表示を制御可能。
・デフォルト条件を無視した柔軟な制御も可能だが、表示位置やユーザー体験に注意して使用する。