#1 楼
是的,有点。进行get_option
调用后,WordPress将运行一个名为wp_load_alloptions
的函数,该函数将获取所有自动加载选项的缓存副本,或将所有这些选项加载到缓存中。然后,wp_load_alloptions
返回所有自动加载选项的数组。如果您的选项是自动加载的(使用add_option
函数时指定),它将成为此数组的一部分并返回。如果您的选项未自动加载,则WordPress会在缓存中专门查找该选项并返回值(如果存在)。如果未命中,最后的后备方法是进入数据库,获取值,将其设置为高速缓存,然后将其返回。
最后,如果根本找不到任何选项(例如,选项名称)是无效的),WordPress将该选项的名称存储在名为
notoptions
的缓存数组中。如果随后对non-options进行了调用,则WP首先检查notoptions数组,这样就不会浪费时间检查不存在的内容。如果您担心调用
get_option
每页加载次数,不是。 WordPress将在第一个get_option
调用之后缓存该选项值,而不管其是否自动加载。查看
get_option
的源代码以了解发生了什么。#2 楼
不,仅将自动加载设置为true时专门加载的选项
请参见http://codex.wordpress.org/Function_Reference/add_option
因此,如果每个页面都需要此选项,则将其添加到数据库时,设置autoload = true。
之后,只需正常使用get_option-wp将处理缓存等。
#3 楼
是的,无需将自动加载设置为yes / true。默认情况下将其设置为yes:
http://codex.wordpress.org/Function_Reference/add_option-
最后一个函数参数($ autoload):
此选项是否应该由wp_load_alloptions()函数自动加载(在每次加载页面时将选项放入对象缓存中)?有效值:是或否。
默认值:是
但是,如果将其设置为no,则该选项将不会放入缓存。
评论
WP处理缓存而不管自动加载如何。
–chrisguitarguy
2011年9月5日下午4:57