June 19, 2008
Wordpress如果导出数据再导入数据的话, 会导致所有以前的回复全部失效的问题, 几乎所有的评论回复插件都会失效(没有实地测试过, 只是根据理论来推测的)。
这个问题以前从来没有关注过, 因为我博客的每次升级或者转移, 都是采取直接操作数据库的方式进行的, 也就从来不会发生这种问题; 但这几日经常有朋友在我的博客上留言告诉我这种情况, 我也只是表示非常抱歉, 因为这是wordpress的一个兼容性问题, 所有的回复插件都没有错。
为此我专门去看了看 wordpress 的导入导出部分的源代码, 发现导出部分倒是没有任何问题, 问题的关键在导入部分, 由于导入部分没有处理该comment_parent的关系, 导致最后所有的回复评论全部失效。 这也是wordpress自己还没有给出评论回复的功能, 也未定义该功能的实现和关联的缘故。
“车到山前必有路”, 任何事情都是可以解决的, 阅读完代码, 我就趁热打铁, 把Wordpress的导入功能做了点小的更改, 使得导入的时候自动关联上评论回复, 从而完全可以解决后顾之忧了(随便导吧)。
由于导入导出部分没有什么hook的, 我就只能直接修改wp的文件了, 文件我就传到skydrive了, 请下载后自行选择相应的版本覆盖, 覆盖的地址是wp-admin/import/下的同名文件。 里面包含2.3.3版本和2.5.1版本的两个导入文件。
点击下载: wordpress import。
最后, 请注意用了这么个导入文件还是不兼容使用Ajax Comments-Reply 这个插件及其从这个插件衍生出来的修订版, 所以用这个插件的朋友就不用再试了。
您喜欢本文吗?即刻订阅"偶爱偶家",精彩文章不再错过!现在就给我们留个话吗?



17 responses to "Wordpress导入不丢失评论回复"
直接用phpmyadmin不好吗?
[Reply]
导出XML更加简单,呵呵
[Reply]
导出xml的确有些问题,会丢友链,再导入的话 category slug 也会失效
[Reply]
好是好, 但危险性比较大, 同时对于yo2这种地方, 应该没有办法可以用phpmyadmin导出吧?
[Reply]
不好意思问一下,为什么覆盖之后后台的“导入”页面出现:
Fatal error: Cannot redeclare class wp_import in /usr/local/psa/home/vhosts/5afe.net/httpdocs/st/wp-admin/import/wordpress.php on line 3
字样。
[Reply]
是我自己的问题。
谢谢博主,评论回复的问题解决了。
[Reply]
不谢, 举手之劳, 只可惜wp自身不会改的.
[Reply]
不错,有了楼主提供的好东东,以后再也不怕了
[Reply]
牛人啊
[Reply]
这方式蛮好,记下了。(不过我还是习惯使用 phpmyadmin )
[Reply]
这件事情告诉我们,能用phpmyadmin还是phpmyadmin好
不能的话…装一个…
[Reply]
感谢博主增补了WP的功能,我想我前一段升级到WP2.5时评论回复失效就是这个原因,但可惜我就是用的Ajax Comments-Reply这个插件实现回复效果的;其实博主的wordpress thread comment插件很好,只是与Gravatars显示的头像结合的不够理想,我想原因还在于我不会根据情况修改comments.php的原因,呵呵,以后有机会一定用上wordpress thread comment和你开发出的“无缺失”导入功能,多谢啦:-)
[Reply]
不是有个数据库备份的插件吗?有什么区别吗?
[Reply]
好东东呀,我上次导就丢失了一回,现在有这个就好了
[Reply]
[...] 把 Wordpress 导入评论会丢失回复的问题给解决了一下, 具体请参考“Wordpress导入不丢失评论回复”, 不过那个时候 Wordpress 还没有发布 2.6 version, 所以只修改了 2.5 版本和 [...]
用了试试,谢谢提供
[Reply]
你好,wordpress import这个文件链接无法下载,能否发个到我邮箱?万分感激。。。
[Reply]