WordPress.org

Plugin Directory

Query Monitor – 【查询监视器】WordPress 的开发人员工具面板

Query Monitor – 【查询监视器】WordPress 的开发人员工具面板

描述

Query Monitor 是 WordPress 的开发人员工具面板。它可以调试数据库查询、PHP 错误、挂钩和操作、块编辑器块、排队脚本和样式表、HTTP API 调用等。

它包括一些高级功能,例如 Ajax 调用调试、REST API 调用、用户能力检查以及对块主题和完整站点编辑的完全支持。它包括通过插件或主题缩小大部分输出范围的能力,使您可以快速确定性能不佳的插件、主题或功能。

查询监视器重点关注以有用的方式呈现其信息,例如通过显示按负责它们的插件、主题或函数分组的聚合数据库查询。它添加了一个管理工具栏菜单,显示当前页面的概述,一旦您选择菜单项,面板中就会显示完整的调试信息。

Query Monitor 支持最多三年前的 WordPress 版本以及 PHP 7.4 或更高版本。

有关完整信息,请参阅Query Monitor 网站

以下是每个页面加载所显示内容的概述:

  • 数据库查询,包括缓慢、重复或错误查询的通知。允许按查询类型(SELECTUPDATEDELETE 等)、负责组件(插件、主题、WordPress 核心)和调用函数进行过滤,并为每个提供单独的聚合视图。
  • 模板文件名、完整的模板层次结构以及已加载或未加载的所有模板部分的名称(对于块主题和经典主题)。
  • PHP 错误及其负责的组件和调用堆栈以及管理工具栏中的可见警告都很好地呈现。
  • 在您网站的代码中使用“做错了”或“已弃用”功能。
  • 帖子内容和完整站点编辑 (FSE) 中的块和关联属性。
  • 匹配的重写规则、关联的查询字符串和查询变量。
  • 排队的脚本和样式表,以及它们的依赖项、依赖项以及损坏的依赖项的警报。
  • 每个文本域的语言设置和加载的翻译文件(MO 文件和 JSON 文件)。
  • HTTP API 请求,包含响应代码、负责的组件和所用时间,以及失败或错误请求的警报。
  • 用户能力检查,以及结果和传递给能力检查的任何参数。
  • 环境信息,包括有关 PHP、数据库、WordPress 和 Web 服务器的详细信息。
  • 所有 WordPress 条件函数的值,例如 is_single()is_home() 等。
  • 已更新的瞬态。
  • 在多站点安装中使用 switch_to_blog()restore_current_blog()

此外:

  • 每当发生重定向时,查询监视器都会添加一个包含调用堆栈的 HTTP 标头,因此您可以使用您最喜欢的 HTTP 检查器或浏览器开发人员工具来跟踪触发重定向的内容。
  • 页面上任何 jQuery 发起的 Ajax 请求的响应都将在其标头中包含各种调试信息。 PHP 错误也会输出到浏览器的开发人员控制台。
  • 只要经过身份验证的用户有权查看查询监视器的输出,来自经过身份验证的 WordPress REST API 请求的响应将在其标头中包含性能信息和 PHP 错误的概述。 封装的 REST API 请求将包含更多调试响应的 qm 属性中的信息。

默认情况下,查询监视器的输出仅向单站点安装的管理员显示,对于多站点安装的超级管理员显示。

除此之外,您还可以设置一个身份验证 cookie,允许您在未登录时(或者以非管理员身份登录)查看查询监视器输出。有关详细信息,请参阅“设置”面板。

其它插件

我为开发人员维护了几个其他插件。去看一下:

  • 用户切换提供 WordPress 中用户帐户之间的即时切换。
  • WP Crontrol 可让您查看和控制 WP-Cron 系统中发生的情况

隐私声明

查询监视器默认是私有的,并且永远都是私有的。它不会持久存储其收集的任何数据。它不向任何第三方发送数据,也不包含任何第三方资源。 可在此处找到 Query Monitor 的完整隐私声明

无障碍声明

Query Monitor 的目标是让所有用户都能完全访问。 可以在此处找到 Query Monitor 的完整辅助功能声明

屏幕截图

  • 管理工具栏菜单
  • 按组件聚合数据库查询
  • 能力检查
  • 数据库查询
  • 勾子和动作
  • HTTP API 请求
  • 通过调用函数聚合数据库查询

常见问题

这个插件可以在 PHP 8 上使用吗?

是的,它经过积极测试,最高可达 PHP 8.2。

谁可以看到查询监视器的输出?

默认情况下,查询监视器的输出仅向单站点安装的管理员显示,对于多站点安装的超级管理员显示。

除此之外,您还可以设置一个身份验证 cookie,该 cookie 允许您在未登录时或以通常无法查看查询监视器输出的用户身份登录时查看查询监视器输出。有关详细信息,请参阅“设置”面板。

查询监视器本身是否会影响页面生成时间或内存使用情况?

简短的回答:是的,但只有一点点。

长答案:查询监视器对页面生成时间的影响很小,因为它以与其他插件相同的方式挂接到 WordPress 中的几个位置。影响可以忽略不计。

在数据库查询数量特别多(数百个)的页面上,查询监视器当前使用的内存比我希望的要多。这是由于每个查询的堆栈跟踪中捕获的数据量所致。我一直并将继续努力不断减少这种情况。

我可以阻止查询监视器在长时间运行的请求期间收集数据吗?

是的,您可以调用 do_action( 'qm/cease' ) 来指示查询监视器停止页面生成的剩余操作。它将脱离进一步的数据收集,丢弃迄今为止收集的所有数据,并跳过其信息的输出。

这对于执行大量数据库查询、消耗大量内存或查询监视器不关心的长时间运行操作非常有用,例如:

  • 备份或恢复您的网站
  • 导入或导出大量数据
  • 运行安全扫描

查询监视器有任何附加插件吗?

可以在此处找到查询监视器的附加插件列表。

此外,查询监视器透明地支持调试栏插件的附加组件。如果您安装了任何调试栏附加组件,请停用调试栏,附加组件将显示在查询监视器的菜单中。

我可以在哪里建议新功能或报告错误?

请使用Query Monitor 的 GitHub 存储库上的问题跟踪器,因为在那里跟踪问题比在wordpress.org 支持论坛。

Altis 上可以使用查询监视器吗?

是的,Altis 开发人员工具构建在查询监视器之上。

WordPress VIP 上可以使用查询监视器吗?

可以,但用户需要被授予 view_query_monitor 功能才能查看查询监视器,即使他们是管理员也是如此。 有关更多详细信息,请参阅 WordPress VIP 文档

我正在使用“wpdb”的多个实例。如何让我的其他实例显示在查询监视器中?

该功能在 3.12 版本中被删除,因为它很少使用,并且大大增加了 Query Monitor 本身的维护负担。如果您需要使用此功能,请随意继续使用版本 3.11。

我可以单击堆栈跟踪以在编辑器中打开文件吗?

是的。您可以在“设置”面板上启用此功能。

我如何报告安全错误?

您可以通过 Patchstack 漏洞披露计划报告安全错误。 Patchstack 团队帮助验证、分类和处理任何安全漏洞。 在此处报告安全漏洞

你们接受捐款吗?

我正在通过 GitHub 赞助商计划接受赞助. 如果您在一家使用 WordPress 开发的机构工作,请要求您的公司提供赞助以投资其供应链。我维护的工具可能会节省您公司的时间和金钱,并且 GitHub 赞助现在可以在组织级别完成。

此外,如果您喜欢该插件,那么我希望您留下评论。也告诉你所有的朋友吧!

评价

2024 年 5 月 15 日
quelle perte de temps d’avoir tâtonné si longtemps avant d’installer ce plugin… un must-have
阅读所有445条评价

贡献者及开发者

“Query Monitor – 【查询监视器】WordPress 的开发人员工具面板” 是开源软件。 以下人员对此插件做出了贡献。

贡献者

「Query Monitor – 【查询监视器】WordPress 的开发人员工具面板」插件已被翻译至 25 种本地化语言。 感谢所有译者为本插件所做的贡献。

将“Query Monitor – 【查询监视器】WordPress 的开发人员工具面板”翻译成您的语言。

对开发感兴趣吗?

您可以浏览代码,查看SVN仓库,或通过RSS订阅开发日志

更新日志

3.16.3 (22 May 2024)

  • Prevents an infinite loop when logging doing it wrong calls and deprecated calls.
  • Removes a global from query-monitor.php

3.16.2 (22 May 2024)

  • 修复了 3.16.0 和 3.16.1 中 PHP 自动加载器导致某些网站崩溃的另一个问题

3.16.1 (22 May 2024)

  • 修复了 3.16.0 中 PHP 自动加载器导致某些网站崩溃的问题

3.16.0 (22 April 2024)

  • 添加对 WordPress 6.5 中调试新功能的全面支持:JavaScript 模块和 PHP 翻译文件

3.15.0 (10 November 2023)

3.14.1 (21 October 2023)

  • 提高了与 WordPress Playground 的兼容性

3.14.0 (18 October 2023)

  • 更正了显示脚本和样式的 URL 时的端口号处理
  • 改进了在多站点网络中的单个站点上激活和停用查询监视器以及使用 DISALLOW_FILE_MODS 时的 db.php 处理
  • 改进了对调试栏是否存在的检查
  • 将嵌入式插件标识为特定组件而不是“其他”
  • 简化记录查询时使用的一些数据结构
  • 指定 Query Monitor 支持最多三年前的 WordPress 版本

3.13.1 (15 July 2023)

  • 如果在引导过程中尽早触发已弃用的警告,则可以避免致命错误
  • 避免在未使用 Curl 时在某些 HTTP API 请求期间可能触发的 PHP 警告
  • 在插件更新过程中跳过加载 QM

3.13.0 (9 July 2023)

  • 添加了一个专门的面板来显示“做错了”和已弃用的功能使用情况
  • 允许按主机名过滤 HTTP API 请求面板中的数据
  • 在挂钩列表可以同时显示操作和过滤器的位置添加“类型”列
  • 改进了“编辑器”设置的各个方面
  • 将 PHP 的最低支持版本增加到 7.4
  • 非常感谢 @crstauf 提供此版本中的大部分新功能

3.12.3 (17 May 2023)

  • 当古腾堡插件与块主题一起使用时,改进了主题模板部分数据收集
  • 如果主题不支持块模板,则跳过尝试解析块模板
  • 删除了数据库查询错误的 $EZSQL_ERROR 回退,因为无法确定是否应忽略该错误

3.12.2 (27 April 2023)

  • 将总计数添加到 PHP 错误面板的表页脚
  • 改进了指向站点编辑器的链接的目标 URL
  • 实现了一些小的视觉改进
  • 删除有关 HTTP API 请求传输的不可靠信息
  • 从临时登录模式中删除查询监视器输出

3.12.1 (24 March 2023)

  • 更正了一些指向“查询”面板和子面板的面板间链接
  • 为选定的表列过滤器切换到 sessionStorage,这样它们就不会跨选项卡或会话持续存在
  • 删除从调试栏插件继承的面板菜单上的“调试栏:”前缀

3.12.0 (16 March 2023)

  • 使用块主题或完整站点编辑 (FSE) 时,澄清并改进了模板面板中的信息
  • 如果第三方插件对语言文件路径进行意外更改,可避免 PHP 警告
  • 实现了一些小的性能改进
  • 删除有关 WordPress 内存限制的误导性信息
  • 删除对 wpdb 多个实例的支持(有关更多信息,请参阅常见问题解答)

3.11.2 (23 February 2023)

  • 实施各种辅助功能改进
  • 修复了“脚本”面板中并未显示所有管理区域页脚脚本的问题
  • 改进了使用性能实验室插件中的 SQLite 功能时的输出
  • 从定制器中完全删除 QM 输出
  • 确保停用 QM 时不会删除另一个插件中的 wp-content/db.php

3.11.1 (3 January 2023)

  • 避免在 PHP 8 中当 posix_getpwuid()posix_getgrgid() 未返回预期值时出现致命错误。

Earlier versions

有关早期版本的变更日志,请参阅 GitHub 上的发布页面