安装时的主题定制API选项

时间:2014-04-06 作者:Tom

我正在开发一个使用WordPress主题定制API的主题。

除了最初的主题安装,一切都正常工作。

我的一些选项需要在主题安装时立即设置。

环顾四周后,似乎在add\\u setting选项中设置默认参数应该立即设置该选项,但事实并非如此。

下面是我的代码的简短摘录:

add_action( \'customize_register\', \'generate_customize_register\' );
function generate_customize_register( $wp_customize ) {

    // Add Layout section
    $wp_customize->add_section(
    \'layout_section\',
        array(
            \'title\' => __( \'Layout\', \'generate\' ),
            \'capability\' => \'edit_theme_options\',
            \'description\' => __( \'Allows you to edit your theme\\\'s layout.\', \'generate\' ),
            \'priority\' => 30
        )
    );

    // Add Header Layout setting
    $wp_customize->add_setting(
        // ID
        \'generate_settings[header_layout_setting]\',
        // Arguments array
        array(
            \'default\' => \'fluid-header\',
            \'type\' => \'option\'
        )
    );

    // Add Header Layout control
    $wp_customize->add_control(
    // ID
    \'header_layout_control\',
    // Arguments array
    array(
        \'type\' => \'select\',
        \'label\' => __( \'Header Layout\', \'generate\' ),
        \'section\' => \'layout_section\',
        \'choices\' => array(
            \'fluid-header\' => __( \'Fluid / Full Width\', \'generate\' ),
            \'contained-header\' => __( \'Contained\', \'generate\' )
        ),
        // This last one must match setting ID from above
        \'settings\' => \'generate_settings[header_layout_setting]\',
        \'priority\' => 1
    )
);
}
如您所见,我创建了一个节,一个带有默认值的设置和该设置的控件。

当我转到主题定制器并保存选项时,会在数据库中创建一个generate\\u settings表,其中包含应该包含的选项。

但是,在新安装主题时,如果进入数据库,则不存在generate\\u settings表-只有在进入主题自定义程序并保存选项时,才会将设置添加到数据库中。

我做错什么了吗?在fresh theme安装中,我可以用这些设置填充数据库吗?

谢谢

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

使用默认值时fetch 设置。从不在数据库中存储默认值。

示例:

$defaults = array (
    \'foo\' => \'bar\'
);

$options = get_option( \'my_theme_options\', $defaults );

echo $options[\'foo\'];

结束

相关推荐