Run function on settings save

时间:2013-03-04 作者:urok93

我正在为插件的设置页面使用设置API。其中一个设置允许用户更改此插件创建的cron作业的cron作业间隔。

因此,我想在保存设置页面时运行一个函数,该函数检查数据库中的值,并将其与现有cron作业的值进行比较。如果它们不同,则应重新创建cron作业。

我的逻辑正确吗?如果正确,那么在保存插件设置后,如何运行这样的函数?

2 个回复
最合适的回答,由SO网友:Jesse 整理而成

我不熟悉wordpress设置api,但我知道这些由设置api生成的选项是在wp admin/options中处理/保存的。php

不幸地

if ( isset( $_POST[ $option ] ) ) {
        $value = $_POST[ $option ];
    if ( ! is_array( $value ) )
        $value = trim( $value );
    $value = stripslashes_deep( $value );
}
update_option( $option, $value );
如您所见,update\\u选项之前没有挂钩。

但有一个解决方法:

add_settings_field(\'..\',\'..\',\'callback\');

function callback(){
   if($_GET[\'settings-updated\']==\'true\'){
        //do your cron update stuff here.
   }
   echo \'output <input or something\';
}
但不是很优雅。

SO网友:Will

正确的答案是在更新选项后添加\\u操作。

请参见以下答案:Hook if somebody saves plugin options?

结束

相关推荐

Upload images - Theme options

我正在使用这个很棒的[图坦卡门+教程][1]创建主题选项页面。这对我来说很好,因为我需要通过css更改div的背景图像。它可以很好地与一个图像,但我不知道如何使它与2个图像?如果你能告诉我我做错了什么,那将是一个巨大的帮助?谢谢 <?php function wptuts_get_default_options() { $options = array(); $options[] = array(\'logo\' => \'\');