最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【整理】如何调试wordpress中的php代码 + 注意事项

WordPress crifan 4640浏览 0评论

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代码 + 注意事项

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (2)

  1. define('WP_DEBUG_DISPLAY', true);这个还是设置成false好
    诸葛小觉11年前 (2013-09-26)回复
  2. 写的很完善,真正的方方面面,谢谢!
    诸葛小觉11年前 (2013-09-26)回复
86 queries in 0.201 seconds, using 22.16MB memory