cocoonフック調査~cocoon_settings_before_save、cocoon_settings_after_save

タナビーの高梨です。

WordPressのテーマ「cocoon」では、豊富なアクションフックとフィルターフックが提供されています。

分かる範囲で内容を調査したのでブログにまとめていこうと思います。

今回はcocoon設定の保存時前後に発火するアクションフック
cocoon_settings_before_savecocoon_settings_after_save
です。

使いどころ

cocoon設定で保存ボタンを押した後のデータ保存前とデータ保存後にそれぞれ発火するアクションフックです。

何かを表示させるような箇所ではなさそうなので内部的な動作を行うのに使う気がしますが、あまり思いつきません。
変数がないので、参照できる値もグローバルに限られます。

before:
・skinを作った際にCSS当てるとか??
・$_POSTデータのバリデーションチェック??
・ログ出力??
・保存されたことをメール通知??
・$_THEME_OPTIONSを横取りして保存データを書き換え?

after:
・スキンを作った際にCSS当てるとか??
・ログ出力
・保存されたことをメール通知

do_action呼び出し元のソースコード

/lib/page-settings/_top-page.php

if( $is_post_ok ):
  //var_dump($_POST[OP_RESET_ALL_SETTINGS]);

  do_action('cocoon_settings_before_save');
  ///////////////////////////////////////
  // 設定の保存
  ///////////////////////////////////////
  //リセット
  require_once abspath(__FILE__).'reset-posts.php';
  //全体
  require_once abspath(__FILE__).'all-posts.php';

~~省略~~

  ///////////////////////////////////////
  // エディター用のカスタマイズCSS出力
  ///////////////////////////////////////
  put_theme_css_cache_file();

  ///////////////////////////////////////
  // ads.txtの出力
  ///////////////////////////////////////
  put_ads_txt_file();

  do_action('cocoon_settings_after_save');

endif;

引数

なし

カスタマイズコード例

function customize_cocoon_settings_before_save() {

    global $_THEME_OPTIONS;

    $_THEME_OPTION = array( 'site_key_color' => '#ffffff' );

}
add_action('cocoon_settings_before_save', 'customize_cocoon_settings_before_save' );