有没有一种简单而标准的方法来调试wordpress插件中的代码?我想在一个函数中打印一些变量,该函数在特定事件发生时运行。有没有一种wordpress方法可以将其保存到文件中,或者至少可以查看它?
轻松排除WordPress中的代码故障
解决/调试WordPress PHP代码的最佳方法是使用XDEBUG PHP调试器与可以利用XDEBUG的IDE/编辑器相结合。
到目前为止,我最喜欢的PHP/XDEBUG IDE是PhpStorm (我花过的最好的钱),但您可以免费使用their EAP (Early Access Program). 您也可以使用免费VSCode 使用XDEBUG。
这是一个great video showing 使用XDEBUG的效果;PhpStorm。您可以从18:00
这一点很重要,因为之前的一切都是谈话和幻灯片。
您还需要一个支持XDEBUG的本地开发设置。几年前,我对正确配置XDEBUG有多么困难感到沮丧,所以我让我的团队开发WPLib Box 它预先配置了XDEBUG,从而使使用XDEBUG trivally变得非常简单。你可以download GitHub的WPLib框,免费使用,并通过获取帮助our Slack.
我想说的是,使用PhpStorm/XDEBUG/WPlib-Box给了我WordPress的超级能力。你认为我还能如何回答WPSE的所有问题?:-)
也就是说,还有其他地方发展解决方案,如VVV, Trellis, Chassis, Desktop Server, MAMP, DevilBox, LaraDock, Kalabox, Kusanagi 还有其他你可以试试的。但我不确定设置XDEBUG以与其他任何一个一起工作有多困难,但我知道在使用WPLib-Box时,第一手的XDEBUG工作起来没有任何麻烦。
希望这有帮助。
只需从配置中的以下定义开始。php文件:
define(\'WP_DEBUG\', true);
define(\'WP_DEBUG_LOG\', true);
define(\'SCRIPT_DEBUG\', true);
define(\'SAVEQUERIES\', true);
第一个将系统设置为调试模式,第二个将每个通知写入保存到wp-content
目录脚本调试使WordPress能够使用未压缩的CSS和JS文件(编写插件可能也很有趣)。Savequeries在呈现的HTML输出的底部写入HTML注释,我建议您接下来使用这些注释。查看WordPress插件目录Debug Bar and extensions. 有很多,其中一些很有可能提供您所需要的东西。
如果没有什么帮助,你每次都可以写
print_r( $var );
die();
并查看HTML源代码。不幸的是,WordPress中并没有真正的标准开发人员日志API。如果您想将自己的数据输出到调试文件(以防止“headers ready sent”错误),那么您可以简单地使用标准PHPerror_log
作用像这样简单的操作将记录变量$data
到文件debug.log
在插件目录中:
$debugline = \'[\'.date(\'y m d H:i:s\', time()).\'] \'.print_r($data,true);
$debugfilepath = dirname(__FILE__).\'/debug.log\';
error_log($debugline, 3, $debugfilepath);