我正忙于编写一个WP插件,遇到了一点问题。
我相信它的最佳实践是将wp选项存储到一个阵列中,而不是单独存储,这很好,没有问题。
我有两页。更新的第一页,例如:
$xyz_options[\'api_user\'];
$xyz_options[\'api_key\'];
第二页有:
$xyz_options[\'site_bgcolor\'];
$xyz_options[\'site_fontcolor\'];
但是,当使用内置wordpress表单构建等时,从任一页面更新时,会清空其他页面设置。我想知道我是不是最好摆脱内置方法,还是有其他方法可以使用我错过的WP方法。
一个简单的例子。假设我是第一组api_user
和api_key
具有1
和abc123
. 然后转到样式页并更新site_bgcolor
具有#fff
和site_fontcolor
具有#000
它会更新颜色,但api_user
和api_key
值从$xyz_options
从中提取阵列wp_options
.
希望这是有意义的。
提前感谢各位,任何指点都很好。
最合适的回答,由SO网友:Bainternet 整理而成
如果您使用的是设置API,那么就不必保存选项,这样就可以了。因此,当使用数组存储选项时,验证函数应获取所有现有选项的数组,只更新更改的选项并返回该数组。
类似这样:
function my_settings_option_validate( $input ) {
//do regular validation stuff
//...
//...
//get all options
$options = get_option(\'my_plugin_options\');
//update only the neede options
foreach ($input as $key => $value){
$options[$key] = $value;
}
//return all options
return $options;
}