Debugging in Wordpress

时间:2016-06-01 作者:Jason

在Visual Studio中,通过运行调试模式并在应用程序中设置断点,可以轻松调试应用程序。

在Wordpress中,您将如何实现同样的目标?

我的网站有问题,没有抛出错误或警告。我花了足够多的时间调整设置来解决这个问题。我找到的唯一解决方案是设置断点并像中那样调试应用程序。网

我知道,如果您在Wordpress中启用调试模式,它会在站点顶部打印出一个巨大的调试输出-这很好,但我无法有效地进行调试。

请告诉我是否有更好的方法来调试Visual Studio中的WP站点。

2 个回复
最合适的回答,由SO网友:Nebri 整理而成

当您第一次开始使用wordpress时,在wordpress中进行调试可能有点困难,虽然我不使用Visual Studio提供的断点,但我可以提供关于如何调试php的建议,以及打开wordpress的调试输出。

首先打开wp配置。php并查找以下行。

define(\'WP_DEBUG\', false);
默认情况下,这设置为false,将第二个参数切换为true。这将允许在浏览器中显示php通知、警告和错误消息。

快速查看Wordpress Codex 显示您可以使用以下快捷方式启用与数据库相关的错误消息:

<?php $wpdb->show_errors(); ?> 
<?php $wpdb->print_error(); ?> 
这样做将允许您查看最后发出的sql查询,以及它从MySql返回时可能遇到的任何错误。

一般来说,当我试图找出变量或数据结构的不稳定之处时,我发现这总是很有帮助的:

<pre>
 <?php print_r($arrayOrObject);
</pre>
使用pre标记将在没有任何html预格式化的情况下输出原始输出,从而扭曲关联数组和对象的视图。var\\u dump()函数在这方面也很有用。

在尝试调试回发之类的内容时,如果您想进入ajax请求,只需回显您尝试调试的变量,并立即发出die()命令,例如:

echo \'<pre>\';
echo var_dump($arrayOrObject);
echo \'</pre>\';
die();
对于开发环境,我更喜欢使用与WAMP堆栈类似的东西(MAMP对于mac osx来说是我脑子里想的东西)

在您自己的机器上运行wordpress实例的本地副本肯定很有用,这样您就可以根据需要试验上述技术。以上提到的故障排除技巧让我经历了过去5年的php编程和wordpress编程。希望你觉得这个有用!

SO网友:Boris Kuzmanov

WordPress自带使用常量的调试系统,可以在切换环境时轻松打开/关闭。所有常量都在wp-config.php 文件

define( \'WP_DEBUG\', true )

背景WP_DEBUG 为true将导致所有PHP错误、警告和通知显示在屏幕上。此外,它还将抛出有关不推荐使用的函数和参数的通知。

define( \'WP_DEBUG_LOG\', true )

启用WP_DEBUG_LOG 将所有错误保存在文件(debug.log 位于/wp content/)。它在调试AJAX事件时很有用。

define( \'WP_DEBUG_DISPLAY\', true )

作为前两个常数的加法,WP_DEBUG_DISPLAY 可用于控制是否要在页面上打印错误。

define( \'SAVEQUERIES\', true )

什么时候SAVEQUERIES 定义为true时,将保存执行的每个查询。还有关于执行查询所用时间以及调用它的函数的信息。所有信息都存储在$wpdb->queries.

还有一个SCRIPT_DEBUG 常数define( \'SCRIPT_DEBUG\', true) 这迫使WordPress使用核心CSS和JS文件的开发版本,而不是缩小版本。

使用Visual Studio(您将需要PHP工具)/PHPStorm/Eclipse,您可以使用Xdebug进行调试。如果您使用的是XAMPP/MAMP,那么它已经安装了Xdebug,所以您只需要配置它。

定位php.ini 并添加以下两行:

zend_extension="/absolute/path/to/xdebug.so"
xdebug.remote_enable = 1
还可以配置其他选项,您可以在xdebug documentation. 完成编辑后php.ini 文件,重新启动Apache服务器。

下一步是在编辑器中设置PHP调试器设置。导航到“设置/首选项”对话框并找到PHP设置。完成后,可以开始设置断点。

相关推荐

即使WP_DEBUG设置为FALSE也会发出警告

链接https://vreqenz-stream.de/shop/ 在某些设备上打开而在其他设备上打开时引发警告<我认为这可能是cahce的问题,但我已经从WP rocket和浏览器中清除了缓存。只是为了获取信息,我正在使用Plesk web管理工具下面是我的WP\\U配置设置ini_set(\'log_errors\',\'On\'); ini_set(\'display_errors\',\'Off\'); ini_set(\'error_reporting\', E_ALL )