不要依赖于保存的选项。更好的是,无论用户是否访问过主题设置页面,主题都能正常运行。
第一步是定义一个函数以返回选项默认值,可以是:
在函数中定义它们,然后在选项参数数组中引用该函数
function mytheme_option_parameters() {
$parameters = array(
\'foo\' => array(
\'name\' => \'foo\',
\'title\' => \'Foo\',
\'std\' => \'bar\'
),
\'foo1\' => array(
\'name\' => \'foo1\',
\'title\' => \'Foo1\',
\'std\' => \'bar1\'
),
);
return $parameters;
)
function mytheme_option_defaults() {
$parameters = mytheme_option_parameters;
$defaults = array();
foreach ( $parameters as $param ) {
$defaults[$param[\'name\']] = $param[\'std\'];
}
return $defaults;
}
在选项参数数组中定义它们,然后在函数中循环该数组。
function mytheme_option_defaults() {
$parameters = mytheme_option_parameters;
$defaults = array();
foreach ( $parameters as $param ) {
$defaults[$param[\'name\']] = $param[\'std\'];
}
return $defaults;
}
function mytheme_option_defaults() {
$defaults = array(
\'foo\' => \'bar\',
\'foo1\' => \'bar1\'
);
return $defaults;
}
function mytheme_option_parameters() {
$defaults = mytheme_option_defaults();
$parameters = array(
\'foo\' => array(
\'name\' => \'foo\',
\'title\' => \'Foo\',
\'std\' => $defaults[\'foo\'];
),
\'foo1\' => array(
\'name\' => \'foo1\',
\'title\' => \'Foo1\',
\'std\' => $defaults[\'foo1\']
),
);
return $parameters;
)
然后,当您需要参考主题选项时,请执行以下操作:
function mytheme_get_options() {
$defaults = mytheme_option_defaults();
$options = wp_parse_args( get_option( \'theme_themename_options\', array() ), $defaults );
return $options;
}
这里的魔法是
wp_parse_args()
呼叫基本上,如果没有设置主题选项,则使用默认值,但如果设置了选项,则使用默认值。用户未设置的任何选项(例如,新添加的选项)将回退以使用主题定义的默认值。
即使用户从未访问过“主题设置”页面,主题也可以使用主题定义的默认值,开箱即用。如果用户从未实际保存任何设置,则主题甚至从未为其选项写入DB条目。