在WordPress Stack Exchange上有一个很棒的问答,很多知识渊博的人在解释他们的调试技术:How do you debug plugins? 在Javascript竞技场,您基本上需要<script>console.log('the value is' + variable);</script>。并使用Google Chrome inspector和/或Firebug。 在PHP中,这取决于事情发生的位置或您希望输出的位置。
// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );
// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );
// Disable display of errors and warnings
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
// Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
define( 'SCRIPT_DEBUG', true );
将信息打印到日志文件
以下使用OSX/Unix/Linux系统路径,针对Windows进行调整。
/* Log to File
* Description: Log into system php error log, usefull for Ajax and stuff that FirePHP doesn't catch
*/
function my_log_file( $msg, $name = '' )
{
// Print the name of the calling function if $name is left empty
$trace=debug_backtrace();
$name = ( '' == $name ) ? $trace[1]['function'] : $name;
$error_dir = '/Applications/MAMP/logs/php_error.log';
$msg = print_r( $msg, true );
$log = $name . " | " . $msg . "\n";
error_log( $log, 3, $error_dir );
}
然后,在代码中调用函数my_log_file( $post, 'The post contents are:' );
直接在呈现的Html中打印
/* Echo variable
* Description: Uses <pre> and print_r to display a variable in formated fashion
*/
function echo_log( $what )
{
echo '<pre>'.print_r( $what, true ).'</pre>';
}
根据您的评论Much rather use a system where debug messages can be turned off and on in one place: 可以在WordPress中完成,有一个名为WP_DEBUG的常量,你可以从WordPress文件夹中的wp-config.php文件(你添加数据库参数的文件)中将其设置为true或false。 因此,您可以用途:
6条答案
按热度按时间slwdgvem1#
在WordPress Stack Exchange上有一个很棒的问答,很多知识渊博的人在解释他们的调试技术:How do you debug plugins?
在Javascript竞技场,您基本上需要
<script>console.log('the value is' + variable);</script>
。并使用Google Chrome inspector和/或Firebug。在PHP中,这取决于事情发生的位置或您希望输出的位置。
Debugging in WordPress(一个数字)
法典中的官方文件。
用于调试的
wp-config.php
示例将信息打印到日志文件
以下使用OSX/Unix/Linux系统路径,针对Windows进行调整。
然后,在代码中调用函数
my_log_file( $post, 'The post contents are:' );
直接在呈现的Html中打印
在任何需要的地方使用它,例如:
echo_log( $post );
.FirePHP(一个字母)
此扩展将直接在浏览器控制台中记录信息。请参考WordPress Answers中的以下问答:How to use WP-FirePHP extension?。
Query Monitor(一个单词)
这是一个调试工具包必须具备的,插件有很多特性,其中之一是它的Logs tab,只需将其放入代码中,并将其列在页面的插件界面中:
w8rqjzmb2#
1.不调试就不要开发!
1.请阅读以下内容:http://wp.smashingmagazine.com/2011/03/08/ten-things-every-wordpress-plugin-developer-should-know/
祝你好运,你可以随时向我们通报最新情况。
n1bvdmb63#
一般的PHP调试策略是使用
print_r( $var )
语句和刷新页面。简单易行。如果你想单步执行,Xdebug就是你要安装的代码。nzrxty8p4#
根据您的评论
Much rather use a system where debug messages can be turned off and on in one place
:可以在WordPress中完成,有一个名为
WP_DEBUG
的常量,你可以从WordPress文件夹中的wp-config.php
文件(你添加数据库参数的文件)中将其设置为true
或false
。因此,您可以用途:
只有当您将WP_DEBUG设置为
true
时(例如在开发版本的网站上,如在您的本地主机上),该警告才会显示,而在您的生产版本的网站上不会显示(您只需在那里将WP_DEBUG
设置为false)。az31mfrm5#
我知道我的答案是在最初的问题之后几年,但是,因为我最近遇到了同样的问题,仍然不能找到一个满意的解决方案,我为此编写了一个插件。
它专门解决了OP需求:
我真的只是需要一种方法来创建一个弹出窗口或日志到一个控制台。
希望它能帮助所有的插件/主题开发者,他们正在寻找一种快速简单的方法来调试他们的代码https://wordpress.org/plugins/bugfu-console-debugger
只需安装它并从PHP代码中调用logging方法,即可直接登录到浏览器JavaScript控制台。
2022年8月编辑
在记录调用上述方法的内容时使用的技术:
安装BugFu后,您将在PHP和JavaScript之间建立一座桥梁,这使得您可以从WordPress代码(主题或插件)中的任何位置,甚至从仅作为 AJAX 回调运行的PHP代码,快速轻松地登录到浏览器控制台。
无需担心打开和关闭WordPress调试日志,无需访问托管服务器来读取通常的PHP日志,无需安装特殊的浏览器扩展或IDE工具。
vlurs2pr6#
通过使用Visual Studio和一个dev工具php调试器扩展,你可以一步一步地调试它,而不是在运行时记录它们并试图找出变量值。
PS:它不是免费的:(