所有这些都需要另一个DB查询(每个!),更糟糕的是,由于它们在一个循环中,每一个都会发生300次左右。
不要惊慌!您查询的帖子存储在WordPress\'object cache (这只是内存,除非您有一个定制的缓存系统)。
所有在POST上操作的函数都会通过该缓存路由,因此在您的情况下,即使您不在“循环”中,也不会有额外的数据库命中。
但是,您会希望在查询后立即弹出此行:
// http://wpseek.com/function/update_post_thumbnail_cache/
update_post_thumbnail_cache( $people );
这将运行两个额外的查询(post和post meta),这将在
WP_Query
实例到同一缓存。
否则,您将得到大量查询(每个有缩略图的帖子有两个查询)。
N.B: 有几个WP_Query
将更改帖子缓存方式的参数:
update_post_meta_cache
(几乎总是肯定的)update_post_term_cache
(如果您不需要术语,可以在此处保存查询)fields
(如果不是all
, 没有缓存任何内容,上面的内容将被忽略)cache_results
(如果为false,则不会缓存任何内容,并且忽略上面的所有内容)