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

タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回は投稿ページで前記事、後記事へのページ送りナビのコンテナであるpager-post-naviのidがついた<div>のクラスを任意に追加できるフィルターフック
👉get_additional_post_navi_classes
です。
フックの概要
フック名 | 発火タイミング |
---|---|
get_additional_post_navi_classes | 投稿ページでページ送りナビが表示されるタイミングで発火 |
発火条件
投稿ページでページ送りナビを描画する際に、無条件に1回発火します。
cocoon設定の投稿タグでページ送りナビの表示が有効になっていないとページ送りナビ自体が表示されないため発火しません。
使いどころ
ページ送りナビにあるpager-post-naviのidとクラスが付いた<div>のクラスを任意に追加できます。
ただ、そもそもpager-post-naviというidやクラスが付いているため、CSSを当てるだけならこのフックを使う意味があまりありません。
あえてあるとすれば、テーマ本体CSSと衝突しないスコープを作るといったところでしょうか。
「デザインを変えたいだけ」ならCSSで既存のpager-post-naviのidやクラスをターゲットにすれば十分です。
apply_filters呼び出し元のソースコード
lib/additional-classes.php
function get_additional_post_navi_classes($option = null){
/// 省略 ///
return apply_filters('get_additional_post_navi_classes', $classes);
}
引数
$classes:(string)クラス名のリスト。
※body_class_additionalではarrayですが、こちらはstringです。
カスタマイズコード例
以下は無条件に’additionalClass’というクラスを追加する例です。
function customize_get_additional_post_navi_classes( $classes ) {
$classes .= ' additionalClass';
return $classes;
}
add_filter( 'get_additional_post_navi_classes', 'customize_get_additional_post_navi_classes' );
注意点
・要素にすでにpager-post-naviというクラスがあるため、単純にデザインを変えるだけならフックは不要です。
・クラスは文字列で処理されるため、スペースを忘れるとクラスが連結されて壊れる可能性があります。
・レイアウトやスタイルの調整以外での使用目的はほとんどなく、基本的には限定的な用途向けと思われます。
まとめ
・get_additional_post_navi_classes関連記事一覧のコンテナであるpager-post-naviのidがついた<div>のクラスを任意に追加できるフック
・単純なCSS適用だけなら既存のクラスで対応可能
・主にテーマ本体CSSと衝突させずにカスタムスタイルを適用したい場合に有用
このフックは、独自のスコープを作るなど、特殊なカスタマイズが必要なときにだけ利用するのが現実的と思われます。