开发人员经常遇到错误,例如数据库连接失败,但调试日志中将不会包含任何内容。这是因为WordPress对于不同的调试方法具有不同的全局PHP变量。那么如何修复WordPress调试错误?
调试WordPress JavaScript
如果您有WordPress网站,则很有可能会使用JavaScript。对于较新的开发人员,从本质上讲,这是支持网站交互元素的语言。JavaScript因调试很繁琐而臭名昭著。这是因为现代站点经常使用基于JavaScript的框架,这进一步使警告和错误消息变得更加复杂。
不幸的是,这并不是使调试WordPress JavaScript困难的唯一原因。JavaScript有两种基本形式:异步或“ AJAX”,以及常规JavaScript。常规JavaScript以线性方式运行;它不会运行一个功能,直到执行完一个功能为止。尽管这可能在Web的早期阶段就已经解决了,但对于Web应用程序并没有减少。
另一方面,AJAX在WordPress网站的后台运行。它允许您运行JavaScript函数并等待其输出,但不会阻止其他函数运行。通常有必要防止站点锁定。
WordPress让我们使用另一个PHP全局变量来表示我们要调试脚本的原因是因为这种调试方**输出大量数据。这也是因为JavaScript和CSS在客户端运行,而PHP在服务器端运行。为了输出由于JavaScript和CSS而导致WordPress遇到的每个错误,只需添加以下行:
define( ‘SCRIPT_DEBUG’, true);
这将同时显示JavaScript和CSS(样式表)错误。它还可以帮助执行更复杂的AJAX操作。
解决数据问题
几乎每个网站都从数据库中获取信息。WordPress有几个数据表。一些站点将数据库存储在单独的服务器上,而某些站点将它们保留在同一服务器上。由于所有配置都不相同,因此数据库连接中总有可能出现问题。
如果您收到一条错误消息,指出WordPress无法连接到数据库,或者您发现数据没有正确提取,则可能需要调试。只需使用标准的WordPress调试变量,您可能会注意到在遇到与数据库相关的错误时不会记录任何内容。
这是因为WordPress将与数据库相关的错误与所有其他错误分开。数据库错误消息通常包含敏感信息,而WordPress的开发人员希望确保您不会意外将私人信息泄露给公众!
为了开始调试WordPress数据库问题,您需要在wp-config.php文件中添加另一行:
define( ‘S**EQUERIES’, true );
深入数据库调试
与我们的其他全局WordPress调试变量不同,我们需要特别注意这一点。“ S**EQUERIES”告诉WordPress,我们想查看每个查询的运行情况并返回结果。这将严重损害站点范围的性能!请注意不要在高峰时间在服务器上运行此程序,并在不需要时将其关闭。
它还存储了一些不同的输出。WordPress使用PHP字符串数组来查看数据库调试信息。它位于名为$wpdb的PHP全局变量和称为query的成员数组中。您可以通过打印$wpdb->queries的内容来实现
调试WordPress插件
与其他平台相比,WordPress的一个主要优势是其丰富的插件库,可以执行几乎所有操作。您可能正在阅读此书,并且已经对需要不断更改文件内容的后勤问题感到头痛。值得庆幸的是,一些插件可以帮助我们调试WordPress!有两种特别受欢迎的产品使它变得轻而易举。
WP Debugging
位于WordPress网站上,WP Debugging是最著名的WordPress调试插件之一。它实质上使我们已经讨论过的过程自动化。在仪表板上单击几下,即可在站点上打开和关闭所有这些PHP全局变量。
安装此插件时,还将安装一系列它所依赖的插件。总体而言,它们使您可以记录日志并帮助您解释遇到的错误。
这个工具非常适合启用调试过程,但是为了调试您自己的插件并轻松查看与数据库相关的WordPress调试信息,您还需要另一个插件。
Debug Bar
顾名思义,Debug Bar只是WordPress网站管理面板上的一个工具栏。它可以与WP Debugging结合使用。
它为更高级的开发人员提供了工具,使他们可以查看缓存,已输出的查询,查询的结果以及更高级的信息。就像我们提到的那样,WordPress将所有数据库调试信息放入PHP全局变量中。
暂无评论内容