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

WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回はcocoon設定画面のプレビュー表示を制御できる
cocoon_setting_all_previews
です。
フックの概要
フック名 | 発火タイミング |
---|---|
cocoon_setting_all_previews | 初期設定で1回発火 |
フックの発火条件
このフックは、ライフサイクルの初期段階で1回必ず発火します。
使いどころ
Cocoonのテーマ設定では、背景やフォントなどをリアルタイムに確認できる複数のプレビュー画面があります。
デフォルトでは、これらすべてのプレビューが表示されます。
このフックを使うことによって、このプレビュー表示を一括でオフにできます。
例えば、サイト運営者以外の環境では設定画面を軽量化したい場合や、特定の環境下でプレビューの読み込みを抑制したい場合になどに使えそうです。


apply_filters呼び出し元のソースコード
lib/_defines.php
define('DEBUG_ADMIN_DEMO_ENABLE', apply_filters('cocoon_setting_all_previews', true));
引数
$cocoon_setting_all_previews:(boolean)true:表示する(デフォルト)、false:非表示にする
カスタマイズコード例
以下は、管理者以外がCocoon設定画面を開いた場合に、すべてのプレビューを非表示にする例です。
function customize_get_cocoon_stylesheet_directory( $get_cocoon_stylesheet_directory_uri ) {
// 管理者以外はプレビューを無効化
if ( ! current_user_can( 'manage_options' ) ) {
return false;
}
return $get_cocoon_stylesheet_directory_uri;
}
add_filter( 'get_cocoon_stylesheet_directory_uri', 'customize_get_cocoon_stylesheet_directory_uri' );
注意点
・プレビューが非表示になると、テーマ設定の変更内容を即時確認できなくなります。
・設定内容そのものは反映されますが、保存して実際のページを開くまで変更が分かりません。
・サイト運営者以外の制限やテスト環境の軽量化など、用途を絞って使うのが良いかもしれません。
まとめ
cocoon_setting_all_previews は、Cocoon設定画面のプレビュー表示を一括で制御するフィルターフックです。
実用する場合は条件分岐を活用し、必要なユーザーや環境だけに適用するのが望ましいでしょう。