调试 PHP 代码是任何项目的一部分,但 WordPress 带有特定的调试系统,旨在简化流程以及跨核心、插件和主题标准化代码。本页介绍了 WordPress 中的各种调试工具,以及如何提高编码效率以及提高代码的整体质量和互操作性。
对于非程序员或普通用户,这些选项可用于显示有关错误的详细信息。
用于调试的示例 wp-config.php #
以下代码插入到您的 wp-config.php文件中,会将所有错误、通知和警告记录到 wp-content 目录中名为 debug.log 的文件中。它还将隐藏错误,因此它们不会中断页面生成。
// 启用 WP_DEBUG 模式 定义('WP_DEBUG',真); // 启用到 /wp-content/debug.log 文件的调试日志记录 定义('WP_DEBUG_LOG',真); // 禁止显示错误和警告 定义('WP_DEBUG_DISPLAY',假); @ini_set('display_errors', 0); // 使用核心 JS 和 CSS 文件的开发版本(仅在修改这些核心文件时才需要) 定义('SCRIPT_DEBUG',真);
注意:您必须在wp-config.php文件中插入这个BEFORE 。 /* That's all, stop editing! Happy blogging. */
WP_DEBUG #
WP_DEBUG
是一个 PHP 常量(一个永久全局变量),可用于触发整个 WordPress 的“调试”模式。默认情况下假定为 false,通常在WordPress 开发副本的wp-config.php文件中设置为 true。
// 这将启用调试。 定义('WP_DEBUG',真);
// 这将禁用调试。
定义('WP_DEBUG',假);
注意:示例中的true
andfalse
值没有被撇号 (‘) 包围,因为它们是布尔值(真/假)。如果将常量设置为'false'
,它们将被解释为 true,因为引号使其成为字符串而不是布尔值。
不建议WP_DEBUG
在现场使用或其他调试工具;它们用于本地测试和分期安装。
PHP 错误、警告和通知 #
启用WP_DEBUG
将导致显示所有 PHP 错误、通知和警告。这可能会修改 PHP 的默认行为,该行为仅显示致命错误和/或在遇到错误时显示白屏死机。
显示所有 PHP 通知和警告通常会导致错误消息显示似乎没有损坏,但未遵循 PHP 内部正确的数据验证约定。一旦识别出相关代码,这些警告就很容易修复,并且生成的代码几乎总是更能抵抗错误并且更容易维护。
不推荐使用的函数和参数 #
启用WP_DEBUG
还会引起有关您网站上正在使用的 WordPress 中已弃用的函数和参数的通知。这些是尚未从核心代码中删除但计划在不久的将来删除的函数或函数参数。弃用通知通常指示应该使用的新功能。
WP_DEBUG_LOG #
WP_DEBUG_LOG
是 WP_DEBUG 的伴侣,它会导致所有错误也被保存到 debug.log 日志文件 如果您想稍后查看所有通知或需要查看屏幕外生成的通知(例如在 AJAX 请求或 wp-cron 期间跑)。
请注意,这允许您使用 PHP 的内置函数写入日志文件error_log()
,这在调试 Ajax 事件时很有用。
设置为true
时,日志将保存到站点文件系统内debug.log
的内容目录(通常为)中。wp-content/debug.log
或者,您可以将其设置为有效的文件路径,以将文件保存在其他位置。
定义('WP_DEBUG_LOG',真); -或者- 定义('WP_DEBUG_LOG','/tmp/wp-errors.log');
注意:为了WP_DEBUG_LOG
做任何事情,WP_DEBUG
必须启用(true)。请记住,您可以独立关闭WP_DEBUG_DISPLAY
。
WP_DEBUG_DISPLAY #
WP_DEBUG_DISPLAY
是另一个WP_DEBUG
控制调试消息是否显示在页面 HTML 中的伴侣。默认值为“true”,它会在生成错误和警告时显示它们。将此设置为 false 将隐藏所有错误。这应该与 结合使用,WP_DEBUG_LOG
以便以后可以查看错误。
定义('WP_DEBUG_DISPLAY',假);
注意:为了WP_DEBUG_DISPLAY
做任何事情,WP_DEBUG
必须启用(true)。请记住,您可以WP_DEBUG_LOG
独立控制。
脚本调试 #
SCRIPT_DEBUG
是一个相关的常量,它将强制 WordPress 使用核心 CSS 和 JavaScript 文件的“开发”版本,而不是通常加载的缩小版本。当您测试对任何内置 .js 或 .css 文件的修改时,这很有用。默认为假。
define( 'SCRIPT_DEBUG', true );
保存查询 #
该SAVEQUERIES
定义将数据库查询保存到一个数组中,并且可以显示该数组以帮助分析这些查询。定义为 true 的常量会导致保存每个查询、该查询执行多长时间以及调用它的函数。
定义(“保存查询”,真);
该数组存储在全局$wpdb->queries
.
注意:这将对您的站点产生性能影响,因此请确保在不调试时将其关闭。
调试插件 #
有许多WordPress 的调试插件可以显示有关内部的更多信息,无论是针对特定组件还是一般。这里有些例子: