就我个人而言,我在某种程度上不同意这本书的作者。如果您在Wordpress初始化时在数据库中自动加载多个选项,则会执行如下查找:““从wp\\U选项中选择option\\u name,option\\u value,其中autoload=\'是\'”*-开始。现在,想象一下,如果您有40个选项,那就是40个单独的DB查询。
但是,如果您只自动加载选项的序列化数组,那么在作为序列化字符串存储的选项选项中可能有数百个选项。因此,仅在一次自动加载多个选项的情况下自动加载并不是完全不好的。
我见过插件严重滥用options API,将多个选项单独存储,这是不必要的开销。所以请记住,除非有很好的理由,否则一定要连载。
自动加载的好处是可以缓存选项。因此,当Wordpress初始化时,选项会被缓存,因此效率更高。但正如我所说,如果您有80个单独的选项,那么在缓存它们之前,会有一个最初的性能损失,这很糟糕。
Here is an example of serialising multiple options into the one:
$myoptions = array(
\'option1\' => \'option value\',
\'option2\' => \'option value 2\',
\'option3\' => \'option value 3\'
);
update_option(\'theme_settings_field\', $myoptions );
$options = get_option(\'theme_settings_field\');
if ($options) {
$option1 = $options[\'option1\'];
}
正如您在示例中所看到的,您可以序列化一个数组,从数据库的角度来看,它是由许多选项组成的一个选项。当您检索这些选项时,它们将被取消序列化为您可以访问的数组(如上面的示例所示)。