是的,有点像。当get_option
调用后,WordPress运行一个名为wp_load_alloptions
, 它要么获取所有自动加载选项的缓存副本,要么将所有这些选项加载到缓存中。然后wp_load_alloptions
返回所有自动加载选项的数组。如果您的选项是自动加载的(在使用add_option
函数),它将是此数组的一部分并返回。
如果您的选项不是自动加载的,WordPress会在缓存中专门查找该选项,并返回该选项所在的值。如果未命中,最后的回退是转到数据库,获取值,将其设置为缓存,然后返回。
最后,如果没有找到任何选项(例如,选项名称无效),WordPress会将该选项的名称存储在一个名为notoptions
. 如果随后调用non选项,WP会首先检查notoptions数组,这样就不会浪费时间检查不存在的内容。
如果你担心打电话get_option
每页加载多次,请勿。WordPress将在第一个get_option
调用,无论其是否自动加载。
退房the source for get_option
看看发生了什么。