这与WordPress直接相关,也是WordPress的结果。com VIP
在VIP,我们处理的网站每周的页面浏览量达数亿次。因此,与小型共享主机相比,在这种规模下,可能会减慢站点速度的情况要明显得多,但这仍然会影响到一个中等流量的站点,该站点在一个像样的VPS上有大约100个用户。我们还可以在代理代码到达生产之前对所有内容进行代码审查
get_posts
尤其是不缓存其结果。如果你做同样的get_posts
调用5次,它将进入数据库5次,而不是将结果保存到以后。WP_Query
不这样做,并且周围有更好的缓存,以及其他在中不可能实现的优化get_posts
因为它是如何返回完全成型的整个帖子的。
有一种方法get_posts
缓存结果,但suppress_filters
默认情况下,选项为true,但如果将其设置为false,WordPress中的缓存机制将执行其工作,结果将保存以备将来使用。
至于这些数据的存储位置,有一个名为WP_Cache
. 默认情况下,这将存储您放入其中的任何内容并保留它(不要实现您自己的缓存以防止在页面加载中多次执行工作,WP已经涵盖了您!)。
然而,有一些插件提供advanced-cache.php
或object-cache.php
, WP_Cache
可以使其持久化。例如batcache
将使WP_Cache
使用memcached
为了存储内容,让数据在页面加载之间保持不变,显著提高了性能。Redis/memcache等也有类似的插件
我建议你看看https://vip.wordpress.com/documentation/, 其中一些是特定于WordPress的。com VIP平台,但其他部分对性能和安全很重要。还有一个VIP扫描工具,可以检测其他内容,例如未缓存的函数使用情况。