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

WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回はテーマディレクトリのURLを自由に書き換えることができる
get_cocoon_stylesheet_directory_uri
です。
フックの概要
フック名 | 発火タイミング |
---|---|
get_cocoon_stylesheet_directory_uri | テーマディレクトリのURLを取得する関数であるget_cocoon_stylesheet_directory_uri()関数が呼び出されるたびに発火 |
フックの発火条件
このフックは、get_cocoon_stylesheet_directory_uri()の関数が呼ばれると必ず1回発火します。
WordPressのライフサイクル中に複数回呼ばれます。
使いどころ
このフックは以前紹介したget_cocoon_template_directory_uriと似ていますが、違いは以下の通りです。
・get_cocoon_template_directory_uri・・・子テーマを使っていても親テーマのURLを取得
・get_cocoon_stylesheet_directory_uri・・・子テーマを使っている場合は子テーマのURLを取得
なお、このフックも実際のテーマファイルの場所を変えるわけではありません。
「指定したURLにCocoonがインストールされていることにする」ような仮想的な処理になります。
……で、何が嬉しいのか?
正直に言えば、get_cocoon_template_directory_uriと同じで一般的な利用者にとって明確な用途はほぼ思いつきません。
特殊な環境やカスタム用途(例えば別パスのディレクトリを擬似的に指定する必要がある場合)では意味があるかもしれませんが、そうでなければ不要です。
むしろ、不用意に変更すると、Cocoonのファイル読み込みパスが変わってしまい、正常動作に影響を及ぼす可能性があります。
apply_filters呼び出し元のソースコード
lib/_defines.php
function get_cocoon_stylesheet_directory_uri(){
return apply_filters('get_cocoon_stylesheet_directory_uri', get_stylesheet_directory_uri());
}
引数
$get_cocoon_stylesheet_directory_uri:(string)テーマまたは子テーマのインストールディレクトリのURL
カスタマイズコード例
function customize_get_cocoon_stylesheet_directory( $get_cocoon_stylesheet_directory_uri ) {
$get_cocoon_stylesheet_directory_uri .= '/hogehoge';
return $get_cocoon_stylesheet_directory_uri;
}
add_filter( 'get_cocoon_stylesheet_directory_uri', 'customize_get_cocoon_stylesheet_directory_uri' );
注意点
・不用意に変更すると、Cocoonのファイル読み込み先が変わり、正常に動作しなくなる可能性があります。
・本番サイトでの利用は慎重に行い、必ずバックアップやテスト環境で検証しましょう。
まとめ
get_cocoon_stylesheet_directory_uri は、子テーマのURLを取得するタイミングで介入できるフィルターフックです。
ただし、多くの場合は必要ありませんし、下手に使うとテーマが壊れるリスクがあります。
特殊なURL指定が必要なケースを除き、触らない方が無難です。