WordPress插件开发人员:将数组用于WP选项

时间:2011-09-16 作者:Jimbo

我正忙于编写一个WP插件,遇到了一点问题。

我相信它的最佳实践是将wp选项存储到一个阵列中,而不是单独存储,这很好,没有问题。

我有两页。更新的第一页,例如:

$xyz_options[\'api_user\']; 
$xyz_options[\'api_key\'];
第二页有:

$xyz_options[\'site_bgcolor\'];
$xyz_options[\'site_fontcolor\'];
但是,当使用内置wordpress表单构建等时,从任一页面更新时,会清空其他页面设置。我想知道我是不是最好摆脱内置方法,还是有其他方法可以使用我错过的WP方法。

一个简单的例子。假设我是第一组api_userapi_key 具有1abc123. 然后转到样式页并更新site_bgcolor 具有#fffsite_fontcolor 具有#000 它会更新颜色,但api_userapi_key 值从$xyz_options 从中提取阵列wp_options.

希望这是有意义的。

提前感谢各位,任何指点都很好。

1 个回复
最合适的回答,由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;
}

结束

相关推荐

从wp_Options解构序列化数据数组

我正在尝试解构(并重新创建)wp\\U选项中名为“my\\u options”的序列化选项值如何构建数组以重新创建“my\\u options”当前存在的option\\u值?update\\u option(\'my\\u options\',?)更新后,wp options表格将保存“my\\u options”的此值:a:3:{s:12:\"my_widget-1\";a:2:{ etc...