在管理区域中保存选项时触发自定义功能

时间:2020-06-10 作者:Marcello Perri

我正在从头开始创建Wordpress主题,我想在主题选项更改时使用主题选项保存一个文件。

我在想:

do_action(\'admin_init\', \'my_custom_function\');
function my_custom_function(){
    save_file();
    ...
}
但在这种情况下,只要加载管理区域,文件就会被保存。

在仪表板上,主题创建表单来管理主题选项,如下所示:

<form method="post" action="options.php">

    <?php settings_fields( \'theme-settings-group\' ); ?>
    <?php do_settings_sections( \'theme-settings-group\' ); ?>

    // form in here
    <?php submit_button(); ?>

</form>
此表单将信息发送到选项。php,它根据指定的设置组将主题选项保存在数据库上。

我希望在“options.php”中保存内容时随时触发一个函数。

你们能推荐一下吗?桑克斯

1 个回复
最合适的回答,由SO网友:Marcello Perri 整理而成

以下是解决方案:

update_option_{option_name}: 更新名为“option\\u name”的选项后运行。例如,对于名为“foo”的选项:

 add_action(\'update_option_foo\', \'my_custom_function\', 10, 2);
update_option: 在更新选项之前运行。示例:

add_action(\'update_option\', \'my_custom_function\', 10, 3);
updated_option: 更新选项后运行。示例:

add_action(\'updated_option\', \'my_custom_function\', 10, 3);

相关推荐

Can't Reach wp-admin

访问链接上的wp admin时http://ec2-3-16-54-250.us-east-2.compute.amazonaws.com/wp-admin, 我获得以下URLhttp://ec2-3-16-54-250.us-east-2.compute.amazonaws.com/wp-admin/ec2-3-16-54-250.us-east-2.compute.amazonaws.com/wp-login.php?redirect_to=http%3A%2F%2Fec2-3-16-54-250.u