为一组相关选项使用单独的选项名称并不理想。
相反,除非有特殊原因,否则应将选项作为序列化数组存储在单个键中。这样,您只需拨打一个add_option()
, update_option()
, 和get_option()
这将意味着总体上生成的查询更少,尤其是在添加和更新值时(如您所述)。
// Example function where options are saved under the name wpse242105_options
function wpse242105_options() {
// Example settings array
$settings = array (
\'option1\' => \'0\',
\'option2\' => \'0\',
\'option3\' => \'0\',
\'option4\' => \'1\',
\'option5\' => \'1\',
\'option6\' => \'0\',
\'option7\' => \'1\',
);
// Save all of the options under a single option key, wpse242105_options
add_option( \'wpse242105_options\', $settings ); // Using add_option() so option will be created if it doesn\'t exist.
}
add_action( \'init\', \'wpse242105_options\' );
保存选项后,您可以在一次调用中获取所有选项
get_option()
.
$saved_options = get_option( \'wpse242105_options\' );
print_r( $saved_options );
Output:
Array
(
[option1] => 0
[option2] => 0
[option3] => 0
[option4] => 1
[option5] => 1
[option6] => 0
[option7] => 1
)
请注意,WordPress将为您处理数组的序列化。这个
option_value
对于
wpse242105_options
在数据库中如下所示:
a:7:{s:7:"option1";s:1:"1";s:7:"option2";s:1:"0";s:7:"option3";s:1:"0";s:7:"option4";s:1:"1";s:7:"option5";s:1:"1";s:7:"option6";s:1:"0";s:7:"option7";s:1:"1";}
get_option()
将序列化数组转换回PHP数组。