1.打开wordpress中的相关的调试选项/配置
之前已经在
实现WLW上传图片到Wordpress过程中,自动翻译文件名
中,参考:
http://codex.wordpress.org/Debugging_in_WordPress
可以到wp-config.php中,添加对应的调试的配置选项:
/** * 开发者专用: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,试了试:
function mw_newMediaObject($args) { ...
error_log($data['name']); $name = $this->translate_sanitize_file_name( $data['name'] );
}
得到
\wp-content\debug.log
中的输出为:
[26-Oct-2012 08:06:43] 0046001feb0d.png
【注意事项】
1.之前在:
实现WLW上传图片到Wordpress过程中,自动翻译文件名
遇到过,当打开了debug:
define(‘WP_DEBUG’, true);
后,结果导致wlw中发布带附件(图片,文件名为中文的)帖子时,出现错误:
从日志服务器接收的对 metaWeblog.newMediaObject 方法的响应无效:
Invalid response document returned from XmlRpc server
所以,这点还是需要特别注意一下的。
转载请注明:在路上 » 【整理】如何调试wordpress中的php代码 + 注意事项