如何调试wordpress中的php代码 + 注意事项

可以到wp-config.php中,添加对应的调试的配置选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
 * 开发者专用:WordPress 调试模式。
 *
 * 将这个值改为“true”,WordPress 将显示所有用于开发的提示。
 * 强烈建议插件开发者在开发环境中启用本功能。
 */
//define('WP_DEBUG', false);
define('WP_DEBUG', true);
//define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_DISPLAY', true);
// Enable Debug logging to the /wp-content/debug.log file
define('WP_DEBUG_LOG', true);

2.(当无法通过print或echo显示输出的调试信息时)把调试信息写入到log文件中

但是,对于很多想要在wordpress后台执行的一些代码,比如

wp-includes\class-wp-xmlrpc-server.php

会在通过客户端(wlw)发布帖子时被调用,此时,在其中添加

print或echo的话,代码是可以执行,但是输出的结果,却不像是html网页一样可以查看,其输出的内容,会被冲掉的。

所以也就无法查看到输出的调试信息了。

无法实现调试了。

最后是自己想到了,对于前面打开

define(‘WP_DEBUG’, true);

define(‘WP_DEBUG_LOG’, true);

后,就可以有log文件:

/wp-content/debug.log

了,所以,应该去找找其他php代码中,是如何把调试信息写入到log文件中的,然后参考一下即可实现自己的调试输出了。

不过,很是无语的,对于在wordpress中,如何输入信息到log文件中,结果却是找了很长很长的时间,最后才参考:

Simple Debugging with WordPress

终于找到相关的函数error_log,试了试:

1
2
    function mw_newMediaObject($args) {
...
1
2
error_log($data['name']);
$name $this->translate_sanitize_file_name( $data['name'] );
1
}

得到

\wp-content\debug.log

中的输出为:

[26-Oct-2012 08:06:43] 0046001feb0d.png

【注意事项】

1.之前在:

实现WLW上传图片到Wordpress过程中,自动翻译文件名

遇到过,当打开了debug:

define(‘WP_DEBUG’, true);

后,结果导致wlw中发布带附件(图片,文件名为中文的)帖子时,出现错误:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

www.admin122.com 关注微信
24小时客服在线