WordPress如何缓存菜单用于提升网站速度

2022/03/06

我们的用户发现,WordPress菜单调用数据库对网站速度有一定的影响。问我们可不可以通过网站菜单缓存来提升网站速度。问答是肯定的。我们都知道数据库调用是 WordPress 的主要性能瓶颈。我们发现菜单在WordPress数据库的中至少分散在六个不同的表中:在“wp_terms”、“wp_term_taxonomy”和“wp_options”表中,我们将找到菜单 ID、slug 和主题位置。然后使用“wp_posts”和“wp_postmeta”来查找菜单的导航项及其元数据。在 metas 中,我们会找到它的目标对象,所以让我们再次访问 ‘wp_terms’ 或 ‘wp_posts’ 来找到菜单项的目标和 ‘wp_termmeta’ 来找到它的 metas。这些是很多表,甚至更多的数据库调用!收集完所有必需的数据后,将创建菜单 HTML 并将其显示给用户。

实际上这些菜单在网站中一经确定,基本不长修改。所以我们认为WordPress可以缓存菜单用于提升网站速度。

WordPress缓存菜单用于提升网站速度方法如下:

使用插件Menu Caching实现,安装并激活该插件。

该插件将缓存菜单 HTML 并向访问者显示缓存的版本,从而使您的数据库免于过多不必要的调用。插件具有如下功能:

  • 缓存所有 WordPress 菜单以缩短页面加载时间。
  • 每个菜单启用/禁用缓存。
  • 使用设置页面上的按钮清除所有菜单缓存。
  • 每次编辑菜单时,都会自动清除其缓存。
  • 所有缓存的数据每 10 小时自动清除一次,以保持一切新鲜,如随机数等。
  • 兼容 WPRocket、W3 Total Cache 等缓存插件。
  • 与大多数翻译插件兼容。使用 WPML 和 TranslatePress 测试正常。

插件工作原理:每次用户访问带有菜单的页面时,WordPress 都会从数据库中收集所有菜单数据,然后运行 ​​walker 来创建菜单的 HTML。在此生成的 HTML 返回给用户之前,该 HTML 暂时保存在数据库中。

Menu Caching测试效果如下:

对于管理员用户:

所有菜单的加载时间——无菜单缓存:0.46 秒(平均)
所有菜单的加载时间——菜单缓存:0.0015s(平均)
速度优势:快 300 倍以上 – 菜单几乎立即加载!

对于访客:

所有菜单的加载时间 – 无菜单缓存:0.232194 秒
所有菜单的加载时间 – 菜单缓存:0.001185 秒
速度优势:快约 200 倍 – 菜单几乎立即加载!

当然,这些数字取决于您的 WordPress 安装、服务器设置和许多参数,但结果将是相同的。

安装激活,只需要开启缓存即可:

One thought on “WordPress如何缓存菜单用于提升网站速度

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注