在WordPress中调试

调试PHP代码是任何项目的一部分,但WordPress附带了专门的调试系统,旨在简化过程,并跨核心、插件和主题标准化代码。本页描述了WordPress上的各种调试工具,以及如何在编码中提高效率,以及如何提高代码的整体质量和互操作性。

对于非程序员或普通用户,这些选项可用于显示有关错误的详细信息。

注释:在对网站进行任何修改之前,请验证您是否使用了登台环境或对网站进行了适当的备份。

调试示例wp-config.php

以下代码,插入您的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公司

WP_DEBUG公司是一个PHP常量(一个永久的全局变量),可用于在整个WordPress中触发“调试”模式。默认情况下,它假定为false,并且通常在wp-配置.phpWordPress开发副本的文件。

//这将启用调试。定义('WP_DEBUG',true);
//这将禁用调试。define('WP_DEBUG',false);

注释:该真的示例中的值没有用撇号(')括起来,因为它们是布尔值(true/false)。如果将常量设置为“false”,它们将被解释为true,因为引号使其成为字符串而不是布尔值。

不建议使用WP_DEBUG公司或其他现场调试工具;它们用于本地测试和分段安装。

PHP错误、警告和通知

有可能WP_DEBUG公司将显示所有PHP错误、通知和警告。这可能会修改PHP的默认行为,它只显示致命错误,或者在出现错误时显示死亡的白色屏幕。

显示所有PHP通知和警告通常会导致出现错误消息,这些消息似乎没有损坏,但在PHP中没有遵循正确的数据验证约定。一旦识别出相关的代码,这些警告就很容易修复,并且生成的代码几乎总是更抗bug,更容易维护。

自定义PHP调试

如果出于调试目的需要记录非错误信息,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

工作包_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独立地。

WP_错误_显示

工作包_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公司

这个SAVEQUERIES公司定义将数据库查询保存到一个数组中,可以显示该数组来帮助分析这些查询。定义为true的常量会保存每个查询,执行该查询需要多长时间,以及调用它的函数。

define(“SAVEQUERIES”,true);

阵列存储在全局$wpdb->查询.

注释:这将对站点的性能产生影响,因此请确保在不调试时关闭此选项。

调试插件

有很多调试插件用于WordPress,它显示了有关特定组件或一般组件内部的更多信息。

例如,调试栏将调试菜单添加到管理栏,显示查询、缓存和其他有用的调试信息。启用WP_DEBUG后,它还会跟踪PHP警告和通知,以便于查找。

变更日志