调试PHP代码是任何项目的一部分,但WordPress附带了专门的调试系统,旨在简化过程,并跨核心、插件和主题标准化代码。本页描述了WordPress上的各种调试工具,以及如何在编码中提高效率,以及如何提高代码的整体质量和互操作性。
对于非程序员或普通用户,这些选项可用于显示有关错误的详细信息。
注释:在对网站进行任何修改之前,请验证您是否使用了登台环境或对网站进行了适当的备份。
以下代码,插入您的wp-config.php文件,将所有错误、通知和警告记录到名为调试日志
在中wp含量
目录。它还将隐藏错误,这样它们就不会中断页面生成。
//启用WP_DEBUG模式定义('WP_DEBUG',true);
//启用/wp-content/Debug.log文件的调试日志记录定义('WP_DEBUG_LOG',true);
//禁用错误和警告的显示define('WP_DEBUG_DISPLAY',false);@ini_set('显示错误',0);
//使用核心JS和CSS文件的开发版本(只有在修改这些核心文件时才需要)定义('SCRIPT_DEBUG',true);
注释:必须插入此之前 /*就这些,停止编辑!快乐博客*/
在中wp-config.php文件。
WP_DEBUG公司
是一个PHP常量(一个永久的全局变量),可用于在整个WordPress中触发“调试”模式。默认情况下,它假定为false,并且通常在wp-配置.phpWordPress开发副本的文件。
//这将启用调试。定义('WP_DEBUG',true);
//这将禁用调试。define('WP_DEBUG',false);
注释:该真的
和假
示例中的值没有用撇号(')括起来,因为它们是布尔值(true/false)。如果将常量设置为“false”
,它们将被解释为true,因为引号使其成为字符串而不是布尔值。
不建议使用WP_DEBUG公司
或其他现场调试工具;它们用于本地测试和分段安装。
有可能WP_DEBUG公司
将显示所有PHP错误、通知和警告。这可能会修改PHP的默认行为,它只显示致命错误,或者在出现错误时显示死亡的白色屏幕。
显示所有PHP通知和警告通常会导致出现错误消息,这些消息似乎没有损坏,但在PHP中没有遵循正确的数据验证约定。一旦识别出相关的代码,这些警告就很容易修复,并且生成的代码几乎总是更抗bug,更容易维护。
如果出于调试目的需要记录非错误信息,PHP确实提供了错误日志
功能。但是,默认情况下,此方法不提供格式正确的输出。
为了解决这个问题,您可以在站点上添加另一个函数来处理格式,方法是创建一个自定义插件或者使用一个片段代码片段插件。该函数将用作错误日志
使用打印(r)
在记录数组和对象之前正确格式化它们。
下面是一个需要的示例函数WP_DEBUG公司
要启用。
函数write_log($data){if(真===WP_DEBUG){if(is_array($data)|is_object($data)){error_log(print_r($data,true));}其他{error_log($数据);}}}
使用示例:
write_log(“调试文本”);write_log($变量);
注释:建议不要像中的上述示例那样添加自定义代码函数.php
以避免维护、安全、性能、兼容性和代码组织问题。
有可能WP_DEBUG公司
还会引起关于WordPress中正在您的站点上使用的弃用函数和参数的通知。这些函数或函数参数尚未从核心代码中删除,但计划在不久的将来删除。折旧通知通常指示应该使用的新功能。
工作包_DEBUG_LOG
是WP_DEBUG的配套工具,它可以将所有错误也保存到调试日志
日志文件。如果您想稍后查看所有通知或需要查看屏幕外生成的通知(例如,在AJAX请求或wp-电子管
运行)。
注意,这允许您使用PHP内置的写入日志文件错误_日志()
函数,这在调试Ajax事件时可能很有用。
设置为时真的
,日志保存到调试日志
在内容目录中(通常是wp-content/debug.log
)在站点的文件系统中。或者,您可以将其设置为有效的文件路径,以便将文件保存到其他位置。
定义('WP_DEBUG_LOG',true);
-或-
定义('WP_DEBUG_LOG','/tmp/WP-errors.LOG');
注释:用于工作包_DEBUG_LOG
做任何事,WP_DEBUG公司
必须启用(true)。记住,你可以关掉工作包_DEBUG_DISPLAY
独立地。
工作包_DEBUG_DISPLAY
是的另一个同伴WP_DEBUG公司
控制调试消息是否显示在页面的HTML中。默认值为“true”,在生成错误和警告时显示它们。将此设置为false将隐藏所有错误。这应该与一起使用工作包_DEBUG_LOG
以便以后可以查看错误。
define('WP_DEBUG_DISPLAY',false);
注释:用于工作包_DEBUG_DISPLAY
做任何事,WP_DEBUG公司
必须启用(true)。记住,你可以控制工作包_DEBUG_LOG
独立地。
脚本_取消
是一个相关的常量,它将迫使WordPress使用核心CSS和JavaScript文件的“dev”版本,而不是通常加载的缩小版本。当您测试对任何内置的.js文件
或.css文件
文件夹。默认值为假
.
定义('SCRIPT_DEBUG',true);
这个SAVEQUERIES公司
定义将数据库查询保存到一个数组中,可以显示该数组来帮助分析这些查询。定义为true的常量会保存每个查询,执行该查询需要多长时间,以及调用它的函数。
define(“SAVEQUERIES”,true);
阵列存储在全局$wpdb->查询
.
注释:这将对站点的性能产生影响,因此请确保在不调试时关闭此选项。
有很多调试插件用于WordPress,它显示了有关特定组件或一般组件内部的更多信息。
例如,调试栏将调试菜单添加到管理栏,显示查询、缓存和其他有用的调试信息。启用WP_DEBUG后,它还会跟踪PHP警告和通知,以便于查找。