选项不会在页面刷新时保存或更新

时间:2013-03-13 作者:TheWebs

所以我设法解决了headers working properly 在我的主题中,但我有一个关于选项的新问题。

我有以下三段代码,它们按照粘贴顺序工作:

Peice 1

我们所做的就是捕获您点击重置按钮,调用重置功能,当我们返回时,如果选项aisis\\U reset设置为“true”,我们将呈现一条消息,然后将选项更新为false。非常简单。

        $theme = AisisCore_Factory_Pattern::create(\'AisisCore_Template_Builder\');

        if(isset($_POST[\'aisis_reset\'])){
            $theme->reset_theme_options();
        }

        $options = get_option(\'aisis_reset\');
        if($options == \'true\'){
            echo \'<div class="alert alert-success"><strong>SUCCESS!!!!</strong> All Options have been reset! You can start again!</div>\';
            update_option(\'aisis_reset\', \'false\');
        }

piece 2

我们要做的就是说,我们是否有多个选项,如果有,请删除每个选项,将选项更新为“true”并重定向,否则如果只有一个选项,请删除它,更新选项并重定向。重定向是通过获取页面的当前url并实质上重定向到它来完成的。(IMO优于JS重定向。)

public function reset_theme_options(){
    if(isset($this->_theme_option[\'admin_options\'])){
        foreach($this->_theme_option[\'admin_options\'] as $option_name=>$value){
            if($value != false){
                delete_option($option_name);
            }
        }

        $this->_update_option();
        $http = new AisisCore_Http_Http();
        wp_safe_redirect($http->get_current_url());

    }else{
        delete_option($this->_options[\'admin_options\']);
        $this->_update_option();
        $http = new AisisCore_Http_Http();
        wp_safe_redirect($http->get_current_url());
    }

}

piece 3 (final)

目前,我已经在测试中硬编码了一个选项。我们所要做的就是说这个选项存在吗?否,创建它并将其设置为true,否则将其设置为true。

protected function _update_option(){
    if(get_option(\'aisis_reset\')){
        $option = get_option(\'aisis_reset\');
        update_option(\'aisis_reset\', \'true\');
    }else{
        add_option(\'aisis_reset\', \'true\');
    }
}
因此,有了这些:

为什么在“重定向”选项aisis\\U reset时,从不==“true”?这总是错误的。是因为我正在重定向吗?我假设如果在重定向之前保存该选项,那么一切都很好

1 个回复
最合适的回答,由SO网友:david.binda 整理而成

也许稍微调试一下会有所帮助。在你的第一件作品中试试这个

$theme = AisisCore_Factory_Pattern::create(\'AisisCore_Template_Builder\');

        if(isset($_POST[\'aisis_reset\'])){
            $theme->reset_theme_options();
        }

        $options = get_option(\'aisis_reset\');

        print_r( $options ); //outputs $options value
        wp_die(); //will halt further process

        if($options == \'true\'){
            echo \'<div class="alert alert-success"><strong>SUCCESS!!!!</strong> All Options have been reset! You can start again!</div>\';
            update_option(\'aisis_reset\', \'false\');
        }
你得到了什么价值?

结束

相关推荐

如何防止options.php从数据库中删除有效的现有数据

我正在设置一个插件,并首次使用设置API在设置中创建表单。默认情况下,当插件被激活并以序列化格式存储在数据库中时,最初会创建插件的数据。今天,我添加了验证回调函数,它可以很好地进行验证。但是,当任何字段验证失败并且函数返回false(我也尝试返回NULL)时,数据库中现有的有效数据将被删除。问题是事情是怎么发生的,还是我在做傻事?在这种情况下,我原本预计数据库中现有的有效数据将保持不变,直到用户提供了一组有效数据来修改它为止。感谢您的任何建议。