从Movable Type迁移到WordPress的方法

Fri 06 January 2006

从Movable Type迁移到WordPress的方法

作者: 月光 网站建设

:::

Movable Type和WordPress是世界上使用最多的两个Blog系统,两者的功能都非常强大,使用起来各有千秋,当然,两者的区别也是非常大的。

Movable Type是PERL写的,CGI从原理上来说占用CPU资源可能会多一些,Movable Type生成真正的静态Html文件,其Url对搜索引擎很友好,静态HTML文件消耗系统资源则较少,可以支持非常庞大的访问量。可惜正是因为生成静态HTML文件,导致Movable Type发布日志的时候速度较慢,每发布一篇文章要更新好几个页面,另外Movable Type的安装相当复杂,上手较为困难。

WordPress是PHP写的,几乎恰恰和Movable Type相反,安装非常简单迅速,几乎5分钟内就可以完全装好,上手很容易,WordPress不生成静态Html文件,所有日志都保存在数据库中,因此其发布日志速度比Movable Type快,但是由于是动态页面,默认配置下对搜索引擎并不友好,不过通过UrlWrite可以仿真静态Html文件,来达到以假乱真的程度,再者其引入了高效的Cache功能,对于大数据量的访问支持也变得越来越好了。

由于WordPress一直都是免费的,多用户版本也是免费,而Movable Type似乎整体正在向收费转移,因此将个人博客系统从Movable Type迁移到WordPresss上似乎越来越流行。我这里总结了若干数据转换的方法,供参考。

首先,利用Movable Type的导出功能将日志都导出到一个文本文件。

然后,对WordPresss进行一些配置。

由于先前的Movable Type日志已经被Google等搜索引擎索引了,所以我们可以强行将WordPresss的Url使用Movable Type的Permalink结构。即从外部看两者具有相同的Url,不会损失搜索引擎的访问量。在WordPresss中点Permalinks设置为/archives/%year%/%monthnum%/%postname%.html,因为%postname%在WordPresss中,是使用"-"号来代替空格,而Movable Type使用的是"_"号,因此,需要在WordPresss安装一个"Underscore Permalinks Plugin"插件。

这个插件很简单,先建立一个文件为underscorepermalinks.php,内容如下:

/*\ Plugin Name: Underscore Permalinks\ Plugin URI: http://WordPress.org/#.\ Description: Converts spaces to underscores when sanitizing post titles for use in permalinks.  This is handy for those moving from Movable Type who want to maintain their old permalink style.\ Version: 1.0.1\ Author: Ryan Boren\ Author URI: http://boren.nu/\ */\ function sanitize_title_with_underscores(\$title) {\ \$title = strtolower(\$title);\ \$title = preg_replace(\'/&.+?;/\', \'\', \$title); // kill entities\ \$title = preg_replace(\'/[\^a-z0-9 _-]/\', \'\', \$title);\ \$title = preg_replace(\'/\s+/\', \' \', \$title);\ \$title = str_replace(\' \', \'_\', \$title);\ \$title = preg_replace(\'|_+|\', \'_\', \$title);\ return \$title;\ }\ remove_action(\'sanitize_title\', \'sanitize_title_with_dashes\');\ add_action(\'sanitize_title\', \'sanitize_title_with_underscores\');

然后复制到plugins目录下Activate。

现在,就可以在WordPress中导入Movable Type的日志了。导入后,在WordPresss中的Url将和Movable Type里的完全一样,实现了平滑的迁移。

注意WordPresss的主机需要支持UrlRewrite才可以使用上述方法,否则Permalink将无效。

更新:WordPress导入MovableType插件的BUG:movabletype-importer.php文件的第120行的长度过小,会导致单行长文本无法导入,解决方法,将function fgets(\$fp, \$len=8192) 修改为function fgets(\$fp, \$len=81920) 。

从Movable
Type迁移到WordPress的方法

::: {#article_dig style="text-align: right"} []{#note373}顶一下 ▲}([]{#sdig373

)   踩一下 ▼}([]{#sdown373

) :::

::: {.previous_content} « 上一篇 多个绑定多域名的PHP代码 :::

::: {.next_content} 下一篇 » 从Z-Blog迁移到WordPress的方法

Category: 月光博客2006