在WordPress 3.0中,我需要将存储在wp_options表中的各个选项更新为序列化数据。 (对于ajax'ed UI)
因为我在更新时只有一个键值对(不是整个选项集),我需要手动修改我以序列化形式存储的整个数组,然后更新整个数据。
我找不到本地的WP功能,所以我使用下面的功能,它工作正常。
我的问题是:这是最好的方法,还是有一个WP包装器函数 - 或者是 - 它应该写一个扩展现有WP类的类吗?
/**
* Function to fetch, modify and store a serialized options string
* Used for updating an individual key-value pair within a larger data set
*
* $opt_group is the name if the option in the wp_options table
* it contains serialized data representing an array of individual oprions relating
* to an 'options-group of a theme framework
*/
function alt_update_option($opt_key,$opt_val,$opt_group){
// get options-data as it exists before update
$options = get_option($opt_group);
// update it
$options[$opt_key] = $value;
// store updated data
update_option($opt_group,$options);
}
答案 0 :(得分:0)
AFAIK无法更新序列化选项的单个元素,您必须检索并发送整个组。
您可以将选项拆分为数据库中的不同wp_options以减少一些数据大小开销,但无论如何,您仍然会在每个请求上访问数据库,这可能是最昂贵的操作
基本上,如果您只是出于性能原因而只想修改一个元素,我不会担心它。 Wordpress在幕后做了很多事情,可能会破坏你设法实现的任何优化。如果你只是想这样做,抱歉,我认为这是不行的。