首页 > WORK > 从 MT 迁移到 WP 后的网页链接问题

从 MT 迁移到 WP 后的网页链接问题

版权声明:本文可以任意转载,转载时请务必以超链接形式标明文章原始出处作者署名本版权声明

Movable Type和WordPress是两个现在非常流行的Blog系统,两者都是非常棒的Blog系统,都能够支持单用户和多用户,功能也都很强大,插件和皮肤也是应有尽有。它们采用的机制有些区别,很难说谁更好…

因为WordPress安装使用更方便一些,有不少人现在从Movable Type转迁移到WordPress,这里只是对转移后的链接问题做一些探讨:

由于以前用Movable Type写的blog已经被Google等搜索引擎索引了,如果现在blog的链接地址改变的话,原来被索引的链接就会变成死链,也就是说别人点击这个链接并不会看到他希望的内容,这对网站的访问量会有很大的影响,所以我们需要改造WordPress下blog的链接地址。

方法是:将WordPresss的URL使用Movable Type的Permalink结构,即从外部看两者具有相同的Url。在WordPresss中将Permalinks设置为/archives/%year%/%monthnum%/%postname%.html,这里还有一个小问题,因为%postname%在WordPresss中,是使用”-”号来代替空格,而Movable Type使用的是”_”号,因此,需要在WordPresss上安装一个叫”Underscore Permalinks Plugin”的插件。

这个插件很简单,只是一个PHP文件。先建立一个文件,命名为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。

这样原来Movable Type中的blog导入后,在WordPresss中的URL将和原来的完全一样,就实现了链接的平滑迁移。

当然你搭建WordPresss的主机需要有Url Rewrite的支持才能使用以上的方法。

分类: WORK 标签: ,
  1. 本文目前尚无任何评论.