如果Wordpress在多个管理页面上,则会删除设置

时间:2017-01-21 11:56:58

标签: php wordpress

我创建了包含两个管理页面的插件。当我在一个管理页面上更改并保存设置时,wordpress会删除另一个管理页面中的设置。

我注册设置

register_setting( SETTINGS_GROUP, SETTING_1);
register_setting( SETTINGS_GROUP, SETTING_2);

每个页面都有带输入的表单

<form class="roles-settings" action="options.php" method="post">
<?php settings_fields( SETTINGS_GROUP ); ?>
<?php do_settings_sections( SETTINGS_GROUP ); ?>
...inputs...
</form>

我用pre_update_option钩子解决了它(请参见下文),但我认为这不是处理事情的方法。

function update_option($newValue, $oldValue) {
    if ($newValue == null) {
        return $oldValue;
    }
    return $newValue;
}
add_filter('pre_update_option_'. SETTING_1, 'update_option', 10, 2);
add_filter('pre_update_option_'. SETTING_2, 'update_option', 10, 2);

我认为我第一次看到这种行为时,我更新到Wordpress 4.7.1

有没有更“自然”的方式来解决这个问题?

0 个答案:

没有答案