WordPress主题选项并插入序列化数据的默认值

时间:2011-02-03 作者:wow

如何为主题选项添加默认值?目前我使用的基本选项来自this site

示例将在数据库上的serialize中存储选项值。当我们激活主题时,在第一次单击保存更改按钮之前,数据库中没有任何值。

现在,我想添加默认值时,主题激活这样的东西。

option_id   blog_id     option_name     option_value                                              autoload 
152           0           theme_data      a:16:{s:12:"html_doctype";s:1:"1";s:14:"header_fav...     yes
或者,我如何调整当前示例选项以不以序列化方式保存到数据库

option_id   blog_id     option_name     option_value    autoload 
152           0           html_doctype    1               yes
让我知道。

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

在选项数组上循环并由此生成一组默认值。。

让我们假设您的数组如下所示。。(但显然更大)。。

$your_options = array(  
    array( 
        \'name\' => \'option-one\',
        \'desc\' => \'Option one description\',
        \'type\' => \'text\',
        \'std\'  => \'default_value\'
    ),
    ..and so on.. for each option..
);
首先检查是否有选项,如果没有,则是第一次安装,以便设置默认值。

$my_var_that_holds_options = get_option( \'your_theme_options_name\' );
if( !$my_var_that_holds_options ) {
    // Do code to setup defaults
}
设置默认值的代码当然会放在我放的地方// Do code to setup defaults.

首先,创建一个数组来保存默认值,并在选项数组上循环以构建新的默认值数组。

$defaults = array();
foreach( $your_options_var as $option_data ) {
    $defaults[$option_data[\'name\']] = $option_data[\'std\'];
}
最后,您将拥有一个选项名称和默认值的数组,然后可以将其发送到数据库。

update_option( \'your_theme_options_name\', $defaults );
如果您的代码需要循环设置复选框等选项。。保存默认值后,只需再次调用get\\u选项。。

$my_var_that_holds_options = get_option( \'your_theme_options_name\' );
或使用默认数组。

$my_var_that_holds_options = $defaults;
我必须非常笼统地介绍这个示例,因为根据选项数组的结构,方法会有所不同。

这里的重要因素是确保您的选项数组为每个选项保留一个“默认”值(示例中为std),否则您将无法从中形成默认值。

我已经多次转换主题来实现这一点,如果您在实现这一点上有困难,请使用选项数组粘贴您的文件,我来看看。

结束

相关推荐

如何将定制的“文本”小部件从unctions.php添加到外观管理器?

我正在尝试使用自己的css类参数向函数中添加默认WP文本小部件的副本。php,以便它出现在窗口小部件管理器中,并可以添加到侧栏中。下面是我的第一次尝试,但我相信一定有比我现在做的更简单的方法。这能以更简单的方式完成吗?在功能上。php,我有这个。。。$google_search = TEMPLATEPATH . \"/google_search.php\";require_once($google_search); add_action(\'widgets_init\', create_funct