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

タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回はインデックスページのインデックスリストミドルの表示位置を制御できるフィルターフック
is_index_middle_widget_visible
です。
フックの概要
フック名 | 発火タイミング |
---|---|
is_index_middle_widget_visible | トップページ記事一覧表示時に発火 |
フックの発火条件
トップページの記事一覧表示の各記事ごとに必ず発火します。
使いどころ
デフォルトでは、3番目と4番目の記事の間にのみにインデックスリストミドルに設定した内容が表示されます。
しかし、このフックを使うことで、広告の表示位置を柔軟に制御可能です。
例えば、インデックスリストミドルを別の位置に表示したり、複数の位置に表示したりといった調整が行えます。
ただし、ダッシュボードの外観>ウィジェットのインデックスリストミドルに表示設定しておく必要があります。
apply_filters呼び出し元のソースコード
lib/ad.php
$is_visible = apply_filters('is_index_middle_widget_visible', $is_visible, $count);
引数
$is_visible:(boolean)指定された記事の下に広告を表示するかどうか。
true:表示する(デフォルトは3番目の記事のみtrue)
false:表示しない
$count:(integer)その記事が何番目かを表す数値
カスタマイズコード例
下記コード適用により、偶数番目の記事の下に広告が表示されるようになります。
function customize_is_index_middle_widget_visible( $is_visible, $count ) {
if( $count % 2 == 0 ) {
$is_visible = true;
} else {
$is_visible = false;
}
return $is_visible;
}
add_filter( 'is_index_middle_widget_visible', 'customize_is_index_middle_widget_visible', 10, 2 );
注意点
・表示条件を変更すると、意図しない位置にインデックスミドルが表示される可能性があります。
まとめ
・is_index_middle_widget_visible はインデックスページ記事一覧内のインデックスリストミドル表示位置を制御できるフィルターフック。
・発火タイミングはトップページ記事一覧表示時。
・デフォルトは3番目の記事下にインデックスリストミドルを表示。
・カスタマイズにより任意の位置や複数位置にインデックスリストミドルを表示可能。