虽然以前就一直想要弃用 WordPress 了,但是由于没有时间(懒) ,而且也是对这个完善的 CMS 有了感情。

然而在 ConoHa 的 VPS 被 DDoS 而搬迁至 DigitalOcean 后,我奇怪的发现 WordPress 的响应速度慢了很多。TTFB 甚至达到了史无前例的 16s。

对于这种情况,我第一个想到的就是数据库的锅。然而看了慢查询日志,导出 wp query 却发现问题不在数据库查询上。

后来又使用了排除大法,最终将问题定位于我所使用的 Seventeen 主题上。

看来是主题中做了什么耗费大量 CPU 时间的事件,导致前后台响应慢成狗(默认主题没事)。

要知道同样内存,ConoHa 和 DigitalOcean 的 CPU 配置可不只差了一点半点。这也是我最初选择 ConoHa 的原因之一。

然而发生了这档子事,反正我是再也不会去用 ConoHa 了。

那么怎么办呢?活人总不能让尿憋死吧。

懒得找是哪个函数的问题,那么干脆把主题的模板扒出来,重新写个主题吧。转而一想,反正要重写主题,那为什么不把主题移植到 Ghost 平台上呢?

说干就干,于是今天下午就开始了移植工作。

得益于之前看过的 Ghost 主题开发文档,移植工作进展的很顺利,大概一个半小时左右就完成了。

不过由于 handlerbars 模板语言的限制,原版主题的配置项是肯定无法实现了,所以我只好把相关设置项放在文件的注释中以供选择(譬如 color-theme)。

至于菜单和小工具,同样由于 Ghost 的机能所限,只能靠用户手写静态 HTML 啦,我在模板注释中提供了菜单及小工具的模板。

关于代码高亮,我使用了 highlight.js 的 Arduino Light 模板,可以自动识别类似于 language-xxx 这样的 class,所以在 Markdown 中尽管放心地写 ```Javascript 这样的格式吧~

关于 WordPress 的文章导出,可以使用 Ghost 官方的插件,提供了导出文章,页面等信息至 json,以及自动转换为 Markdown 等功能。转换出来的 json 直接在 Ghost 的 Labs 里导入即可,固定链接等信息均会被保存。

一点需要注意的是,Ghost 中并没有所谓分类目录的概念,只有标签。所以要注意修改标签哦。

关于博主们最关注的评论,我选择了使用 Disqus 来实现。Ghost 不提供原生的评论功能, 所以其实也没几个选择,而且我也不喜欢多说。创建 Disqus 账户及站点后,就可以在这里导入来自 WordPress -> Tools -> Export 导出的 XML 文件。不要用 Disqus 的 WP 插件来导入,那样的话无法指定 forum name。

不过 Disqus 对游客不显示其邮箱的 Gravatar,有点蛋疼的。

那么至此站点迁移就完成啦,感觉和迁移前看不出什么变化对不对?(笑)现在可不会再出现 Pending 地狱了哦。

顺带把站点换成了蓝色的 color-theme,总是绿色也要审美疲劳的嘛。

最后放一张原来 WordPress 后台的截图以示纪念:

再见了,WordPress,我依然喜欢你。

你好,Ghost,从今以后还请多多关照。