问题描述
奇怪的问题是,如何保存主题设置后如何运行自定义功能?我看到, 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。