Wordpres和Ghost博客互转

前两天将自己的博客由wordpress转为ghost,google的过程是痛苦的,因为要验证是否可行,参考了很多文章1,最后搞定了。

一、Wordpress转Ghost

1、文章

在Wordpress安装Ghost导出插件,安装后,启用该插件,从‘工具’-‘Export to Ghost’导出文章内容。

1

注意:这里仅能导出文章(post)和独立页面(page),无法导出分类,所以必须要先将分类转为tags。

点击Download Ghost File,导出ghost能够导入的json文件。

2、评论

因为Ghost没有评论系统,所以需要使用第三方评论系统,比如,disqus ,网易云跟帖。这里我们以disqus为例。

首先,注册disqus账号。

其次,增加一个disqus站点,添加你的域名,

TIM截图20170619112015

之后,在wordpress安装disqus插件,以你的disqus账号登陆成功后,有一个Import and Export设置项目,点击Export comments to Disqus后面的Export Comments,这样就把wordpress中的评论全部导出到disqus了。

TIM截图20170619112619

3、文件

将主机wordpress/wp-content/uploads目录下面的所有文件复制到ghost/content/imges目录。然后修改你导出的JSON文件里面的附件路径。

sed -i .bak -e 's|wp-content\\/images|content\\/images|g' wp2ghost_export_1418184250.json

4、导入

之后将我们编辑过的json文件打包为zip文

zip wp2ghost.zip wp2ghost_export_1418184250.json

进入Ghost后台的Labs菜单,点击Import下的choose file,选择zip压缩文件,然后import

2

5、给Ghost增加disqus评论系统

编辑ghost/content/theme/casper/post.hbs文件,在</footer></article>之间添加如下代码

{% highlight liquid linenos%}
{% raw %}
<div id="disqus_thread"></div>
<script>

/**
*  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
*  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/

var disqus_config = function () {
    this.page.url = '{{url absolute="true"}}';
    this.page.identifier = 'ghost-{{id}}';
};

(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = 'https://你的disqus网站名.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
{% endraw %}
{% endhighlight %}

注意:代码中你的disqus网站名,这个填你自己的网站名。

编辑ghost/content/themes/casper/default.hbs文件,在</body>之前增加如下代码

<script id="dsq-count-scr" src="//你的disqus网站名.disqus.com/count.js" async></script>

编辑ghost/content/themes/casper/partials/loop.hbs文件,在</footer>之前添加如下代码

(<a href="{{url}}#disqus_thread">Comments</a>)

修改好后,重启你的Ghost!否则,无法生效,看不到效果。

注解:

  1. post.hbs添加的代码,是在文章页显示评论界面。
  2. default.hbs添加的代码,是展示评论数的js文件。
  3. loop.hbs添加的代码,是为了在首页展示评论数。

二、Ghost转Wordpress

1、导出JSON

点击Labs菜单,点击 Export 按钮,导出json文件。

2

2、导入wordpress

下载ghost2wp这个python脚本,经我验证,文章可以完整导入。这个脚本它是解析json文件后,使用XML-RPC协议将所有文章和页面导入wordpress,个人觉得还是挺完美的,貌似无法导入tags,因为我用我的博客实验的,导入后没有tags。它使用了python-wordpress-xmlrpc这个模块,要求版本必须大于等于2.3。

git https://github.com/jbfriedrich/ghost2wp.git

然后将json文件放到和ghost2wp.py同级的目录,之后运行ghost2wp.py文件

python ghost2wp.py -e http://example.com/xmlrpc.php -f xxx.json -u WP用户名 -p 'WP密码'

三、其他

其实ghost还可以导出为markdown文件,然后使用在其他的静态类博客程序中。比如,ghost2hexo,这是我也试验了,确实可以将所有文章,用slug作为文件名,导出为markdown文件。ghost博客还是挺好使的,和其他的php博客相比,资源占用小,目标明确,就是一个单纯的blog程序,像wordpress,就不应该属于blog程序了,因为太庞大,应该定义到CMS的范畴。


最后修改于 2017-06-19