什么是查询监视器插件?

已发表: 2022-12-07

如果您曾经遇到过一个速度缓慢的网站,您只是想不出如何加快速度或客户反馈他们正在寻求性能提升,那么 Query Monitor 插件可能就是您最好的新朋友。 Query Monitor”是 WordPress 的开发者工具面板。

它可以调试数据库查询、PHP 错误、挂钩和操作、块编辑器块、排队的脚本和样式表、HTTP API 调用等等……”。 而且,特别是如果您是一名开发人员,当您不可避免地不得不调试 WordPress 网站上的错误或意外行为时,它是您希望在工具箱中拥有的工具。

在本文中,我们将了解什么是 Query Monitor 插件,以及它如何帮助您作为开发人员更好地了解在您的 WordPress 网站上运行的所有代码。

什么是查询监视器

Query Monitor 是一个对开发人员来说非常像“瑞士军刀”的插件。 虽然您可能习惯于查看模板、脚本和样式排队,以及您网站上使用的所有各种插件,但查询监视器允许您更深入地了解。

安装了 Query Monitor 插件后,您可以查看实际发生的数据库查询,作为任何特定页面加载的一部分包含的所有各种模板部分,并真正深入了解可能导致性能问题的任何内容网站。

什么时候需要查询监视器?

当您在网站中发现问题时,查询监视器是最重要的,无论是整体性能问题、特定页面上的问题,还是 GTMetrix 或 Google PageSpeed 等工具标记的问题。 但是,当您使用这些工具时,它们有时会掩盖实际问题。

例如,如果您在 Google PageSpeed 分析中看到一个低性能分数,是否有一个流氓数据库查询花费的时间超过了它应该在每个页面上呈现的时间? 由于 PageSpeed 无法访问您网站的后端,因此除了“您网站的这一部分需要更快”之外,它无法为您提供任何更具体的信息。 这就是查询监视器的用武之地。

查询监视器界面是什么样的?

虽然 Query Monitor 具有大量内置功能(您可以将其作为文档的一部分进行更完整的浏览),但我们将重点关注插件的三个特定部分:调试数据库查询,找出有关模板的更多信息您的 WordPress 网站正在使用并深入研究正在使用的挂钩和操作。

安装 Query Monitor 插件后,如果您以 WordPress 用户身份登录,您将看到 Query Monitor 有自己的部分作为管理栏的一部分,您可以在其中访问有助于开始调试的详细统计信息。

数据库查询

如果您从管理栏的“查询监视器”部分选择Queries项,您将看到屏幕底部弹出一个窗口,其中分解了您的网站为呈现您所在的页面而进行的各种数据库查询。

在这里,您不仅可以通过 WordPress 最初进行查询的部分来过滤数据库查询,还可以轻松查看何时进行了可能受益于对象缓存的重复数据库查询。

Query Monitor 的示例显示了我们示例站点的各种数据库查询

向下滚动此列表,您可以看到用于呈现您当前所在页面的每个数据库查询,以及 WordPress 代码库的哪一部分使数据库可以以及查询执行所花费的时间。

Time列是可排序的,因此您可以非常快速地查看作为页面加载的一部分执行时间最长的查询,并在那里开始调试。

缓慢和重复的数据库查询对于 WordPress 网站来说可能是一个巨大的问题,并且经常被忽视。 但是,通过使用查询监视器查看数据库查询,您可以开始查看是否有,例如,由于您的站点变得太大而需要重构的后元查询。

模板信息

特别是在站点前端调试意外输出时,了解正在使用哪个模板以及正在加载哪些模板部分非常有用。 这是查询监视器非常有用的另一个领域。

通过从 Query Monitor 下拉菜单中选择Template选项,您可以看到用于呈现页面的主模板,以及使用的任何模板部分。

显示用于加载 WordPress 页面的模板的查询监视器示例

有了这些信息,您不仅可以看到当前正在使用哪个模板,还可以获得有关如何将模板层次结构作为此页面构造的一部分进行解析以及包含哪些主体类的一些信息。

这使得查询监视器中的Template卡在开始调试前端问题时成为一个非常强大的视图。

例如,如果您有一个插件应该通过 CSS 类将样式应用到页面,那么开始调试与此相关的样式问题的最佳位置是使用Template卡检查该主体类是否被添加到在深入调试 CSS 之前,页面符合预期。

钩子和动作

一旦您开始使用 Actions 和 Filters,另一个难以调试的 WordPress 执行区域就会变得很明显。 各种不同的插件和主题使用 Actions 和 Filters 来自定义 WordPress 功能,但您不能总是确定它们是否按照您希望的方式触发。

例如,一个常见的问题是一个函数挂钩到一个动作或过滤器,但随后它的功能被另一个以更高优先级运行的函数覆盖。 通过使用 Query Monitor 的Hooks and Actions选项卡,您可以轻松地向下钻取并查看哪些函数挂钩到哪些操作,以及它们在页面的执行和加载周期中的确切位置。

用于调试的查询监视器的 Hooks & Actions 选项卡示例

最右边的列甚至会告诉您哪个组件负责被调用的功能,因此如果您发现冲突,您可以深入到代码库的那部分并找出到底发生了什么以及需要修改什么。

查询监视器与 WP_DEBUG

一种常见的误解是,如果您在站点上启用了WP_DEBUG常量,查询监视器可以让您访问本可用的信息。 虽然 Query Monitor确实提供了一些与调试 WordPress 站点时可用的相同信息,但如果不对单个代码进行大量调试,我们将很难获得上面详述的信息。

使用 Query Monitor,您不仅可以获得一个漂亮、干净的界面来浏览这些信息,而且您可以开箱即用,而无需修改您的代码库,从而使您可以非常快速地开始调试问题并找出哪些部分您的代码库需要修改。

此外,因为它只为登录用户运行,所以您可以确保您站点的非管理员看不到调试信息,并且未登录的用户的页面性能不会受到 Query 的影响监控运行。

包起来

特别是当您不知道从哪里开始调试 WordPress 站点上的特定问题时,查询监视器可能是获得 WordPress 执行周期所有关键部分的总体概览的好方法。 浏览各种选项卡将使您能够查看是否有什么地方看起来不太正确,并深入了解页面加载的特定部分。 使用调试工具箱中的这个强大工具,您将能够更快地隔离问题并重新构建您的 WordPress 站点。

您将 Query Monitor 用于什么目的?它对您的工作流程有何帮助? 在下面的评论中让我们知道。