web-dev-qa-db-ja.com

テーマオプションが保存された後の実行機能

奇妙な質問ですが、テーマ設定を保存した後にカスタム機能を実行するにはどうすればよいですか? register_settings()関数にサニタイズコールバックがありますが、設定が変更される前に実行されます。それらが保存された後に実行するために何かが必要です。そのために使用できるアクションやフィルタはありますか?

編集 -

だから私は私が作ったこの設定があります:

add_settings_section(
    'kjd_body_background_settings_section', // ID hook name
    null, // label
    null, // function name
    'kjd_body_background_settings' // page name
);


    add_settings_field(
        'kjd_body_background_colors', // ID hook name
        null, //label
        null, //callback
        'kjd_body_background_settings', // page name
        'kjd_body_background_settings_section' // parent section 
);

そしてこの機能:

function kjd_update_stylesheet( $oldvalue, $_newvalue ){
   echo 'updated!';
   die();
}
add_action('update_options_kjd_body_background_settings','kjd_update_stylesheet',10, 2);

//add_action('update_options_kjd_body_background_colors','kjd_update_stylesheet',10, 2);
9
rugbert

フィルタupdate_option_{$option}を使用してください。正常に保存された後に実行されます。

$optionはあなたのオプションの名前で、あなたはパラメータとして新旧の値を取得します。

wp-includes/option.phpから:

do_action( "update_option_{$option}", $oldvalue, $_newvalue );

オプションwpse_themesettingsにはこのように使用してください。

add_action( 'update_option_wpse_themesettings', 'wpse_check_settings', 10, 2 );

function wpse_check_settings( $old_value, $new_value )
{
    // do something
}
17
fuxia