前言

之前心血来潮把博客从WordPress转成了Hexo。Hexo是真的好,简洁,但也简陋,尤其是当第三方评论系统一个个停止服务的时候,Hexo的硬伤就暴露出来了。

突然有个想法,要不还是换回WordPress,毕竟WordPress要什么有什么,就是慢点,如果能静态化也应该能解决这问题。

然而,WordPress转Hexo容易,Hexo转WordPress却搜不到任何资料,看来技术大牛都不屑于再转回WordPress这种笨重的博客系统了。

可行方案

玩WordPress的人都知道,WordPress有一个完善的导入导出功能,可将文章,评论等数据导出为xml文件,也可以导入xml文件。

刚好,Hexo也可以输出xml订阅内容,那么两者就可以通过xml完成数据转移了。

Hexo输出xml

Hexo默认是输出atom.xml订阅内容的,这个文件的标准是Atom 1.0的,而且默认输出最近20篇文章摘要,我们将其改成输出RSS 2.0标准,且将内容完整输出,在_config.yml中加入如下内容:

1
2
3
4
5
feed:
type: rss2
path: rss2.xml
limit: false
hub:

其实这个是控制feed插件的,可看下hexo-generator-feed的说明文档。

改完保存后,重启Hexo server,访问localhost/rss2.xml,保存该文件或者直接hexo g,然后去public目录找这个文件就是了。

WordPress导入xml

Hexo导出的rss2.xml导入WordPress这个在WordPress后台完成就行,如果没装该插件那就按提示安装即可,没什么好说的。

需要注意的是,因为不是定制的导入程序,导入WordPress后分类将会消失,这步如果接受不了,那就需要自己动手去改下WordPress的导入程序了。

还有就是永久链接会自动填上标题,并没有处理成Hexo中原先设定的链接形式。因为都用的%postname%.html链接形式,所以这块可以在mysql数据库中处理一把。

1
UPDATE `wp_posts` SET `post_name` =substring(guid,locate('.com/',guid)+5,locate('.html',guid)-locate('.com/',guid)-5)