問題描述
奇怪的問題是,如何儲存主題設定後如何執行自定義功能?我看到, 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);
最佳解決方案
使用過濾器 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
}
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。