Bo-blog2.0.3成功转移到Wordpress2.3,部分转移代码提供下载
经过几天的努力,终于把Bo-blog2.0.3转移到wordpress2.3了,今天晚上把原来的 bo-blog程序也用最新版本的wordpress从服务器上替换了下来。
这次转移程序让我感触最深的就是细枝末节的东西太多,调整这些很细微的东西的时候最头痛了,写程序吧,有点不值得,不写吧,工作量也不算小。整个的 转移过程有很多的东西都是在不断的衡量中进行的。而且以前由于删除Bo-blog上面出现的大量垃圾链接而使很多的数据统计都是错误的,因为当时是在数据 库里面直接写sql改的(否则准累不清,都是上万条的)。
其实数据的转换程序我是先前早就写完了的,今天的时间主要花费在了调整原来的链接和现在的链接统一上面,本来这件事情是可以在.htaccess搞定的,但是后来考虑还是在404页面直接用PHP写好一点,于是写了以下程序:
<?php
<br />
$str=$_SERVER['REQUEST_URI'];<br />
if(preg_match("/\/post\/([0-9]+)(_[0-9]{1})?\.htm/i",$str,$arr)){<br />
header("Location: /?p=".$arr[1]);<br />
}elseif(preg_match("/\/read\.php\?([0-9]+)/i",$str,$arr)){<br />
header("Location: /?p=".$arr[1]);<br />
}elseif(preg_match("/\/index_([0-9]{1})_([0-9]+)\.htm/i",$str,$arr)){<br />
header("Location: /");<br />
}elseif(preg_match("/\/category_([0-9]{1})(_[0-9]{1}_[0-9]+)?\.htm/i",$str,$arr)){<br />
if($arr[1]==0){<br />
header("Location: /category/general/");<br />
}elseif($arr[1]==1){<br />
header("Location: /category/technology/");<br />
}elseif($arr[1]==2){<br />
header("Location: /category/my-life/");<br />
}elseif($arr[1]==3 || $arr[1]==4){<br />
header("Location: /category/emotion/");<br />
}elseif($arr[1]==5){<br />
header("Location: /category/internet-tabloid/");<br />
}<br />
}elseif(preg_match("/\/showday_([0-9]+)_([0-9]+)_([0-9]+)(_[0-9]{1}_[0-9]{1})?\.htm/i",$str,$arr)){<br />
if(strlen($arr[2])==1){<br />
$arr[2]="0".$arr[2];<br />
}<br />
if(strlen($arr[3])==1){<br />
$arr[3]="0".$arr[3];<br />
}<br />
header("Location: /$arr[1]/$arr[2]/$arr[3]/");<br />
}elseif(preg_match("/\/archive_([0-9]+)_([0-9]+)(_[0-9]{1}_[0-9]{1})?\.htm/i",$str,$arr)){<br />
if(strlen($arr[1])==1){<br />
$arr[1]="0".$arr[1];<br />
}<br />
header("Location: /$arr[2]/$arr[1]/");<br />
}<br />
<br />
$str=$_SERVER['REQUEST_URI'];<br />
if(preg_match("/\/post\/([0-9]+)(_[0-9]{1})?\.htm/i",$str,$arr)){<br />
header("Location: /?p=".$arr[1]);<br />
}elseif(preg_match("/\/read\.php\?([0-9]+)/i",$str,$arr)){<br />
header("Location: /?p=".$arr[1]);<br />
}elseif(preg_match("/\/index_([0-9]{1})_([0-9]+)\.htm/i",$str,$arr)){<br />
header("Location: /");<br />
}elseif(preg_match("/\/category_([0-9]{1})(_[0-9]{1}_[0-9]+)?\.htm/i",$str,$arr)){<br />
if($arr[1]==0){<br />
header("Location: /category/general/");<br />
}elseif($arr[1]==1){<br />
header("Location: /category/technology/");<br />
}elseif($arr[1]==2){<br />
header("Location: /category/my-life/");<br />
}elseif($arr[1]==3 || $arr[1]==4){<br />
header("Location: /category/emotion/");<br />
}elseif($arr[1]==5){<br />
header("Location: /category/internet-tabloid/");<br />
}<br />
}elseif(preg_match("/\/showday_([0-9]+)_([0-9]+)_([0-9]+)(_[0-9]{1}_[0-9]{1})?\.htm/i",$str,$arr)){<br />
if(strlen($arr[2])==1){<br />
$arr[2]="0".$arr[2];<br />
}<br />
if(strlen($arr[3])==1){<br />
$arr[3]="0".$arr[3];<br />
}<br />
header("Location: /$arr[1]/$arr[2]/$arr[3]/");<br />
}elseif(preg_match("/\/archive_([0-9]+)_([0-9]+)(_[0-9]{1}_[0-9]{1})?\.htm/i",$str,$arr)){<br />
if(strlen($arr[1])==1){<br />
$arr[1]="0".$arr[1];<br />
}<br />
header("Location: /$arr[2]/$arr[1]/");<br />
}<br />
其实这些程序还没有完全把原来的链接转过来,并且tag也还没转,因为目前我没想把那边的tag也拿过来,现在wordpress2.3数据库结构调整之后,即使转过来也和文章挂不上钩,所以tag问题就再想办法解决了。
把我转移数据的主要程序放在这里了,希望对想转移的朋友有所帮助,此程序为本人所需而写,不得进行恶意转播,也不得将其用于商业用途。
慎用!建议在使用前备份相关数据,因使用此程序带来的任何问题,本站不付任何责任。
Tags: bo-blog, bo2wp, WordPress, 代码 | 1,121 views
如果你觉得IE不好用(微软自己都承认IE的技术不如Firefox),你可以 ,来体验Firefox带给你的超爽感觉。




September 28th, 2007 at 11:35 am
3x
自己也想写,但是一想到好多映射,头疼,懒
手动转换吧,文章也不少,两难
多谢楼主了
October 24th, 2007 at 11:38 pm
多谢多谢。。正找这个东西呢
November 15th, 2007 at 2:47 pm
这些转换程序怎么用啊?非常感谢。
December 1st, 2007 at 1:53 pm
bo-blog有在评论内进行回复的功能.
而WP并没有这个功能
那么这时候评论转到wp里是什么样子的呢?
December 1st, 2007 at 7:58 pm
@蝎子: 只能另外算一条评论。
December 2nd, 2007 at 8:44 am
readme里边的使用方法:
1、上传bo2wp.php和db.inc.php到你的服务器上的相关目录。
2、在本地执行bo2wp.php转化帖子表。
第二部应该是在本地执行insert.php吧?? 还是我理解有错?
我执行insert.php后页面一片空白.
p.s.我的wp数据表前缀是blog_不是默认的wp_,已经把insert文件里相关的前缀都改了.
December 2nd, 2007 at 9:07 am
手动填了 insert.php?p=1 它就开始自动跳转了.
全部都转过来了,呵呵.
不过之前针对评论的回复都没有转换过来.
我还以为会加上引用内容生成新的一条呢.
December 2nd, 2007 at 9:28 am
能否把有管理员回复的评论多复制一条新评论出来跟在后面?
或者在 repcontent 字段内容外面加个引用框,再和 adminrepcontent 字段的内容合并起来, 再导入到wp的评论表里边?
会不会太高难度 -_-
December 2nd, 2007 at 12:51 pm
@蝎子: readme.txt里面是写错了,应该是执行insert.php。已经更正并上传。
对于管理员评论的问题,我没有太多的研究,你可以自己想一下办法,也可以去5kai.com问问独来读网,后续程序他写过一些。
December 21st, 2007 at 5:41 am
是否支持bo-blog2.1.0?
December 21st, 2007 at 8:56 am
@unames: 这个程序是按bo-blog2.0.3写的,要支持2.1.0需要做一部分改动。
细节方面去5kai.com了解的更详细。
January 21st, 2008 at 12:10 am
请问2.1.0的转换去WP2.3.2可以用吗?
我去了5kai.com,他的还在处理中。
January 21st, 2008 at 3:29 am
@六月星夜: 不可以,仅支持bo 2.0.3
April 19th, 2008 at 3:33 pm
可能我需要的比较复杂,考虑到未来发展的关系。我想从bo-blog转到drupal的,我现在想:从Bo-blog→Wordpress→Drupal,但是我除了会简单使用程序之外,并不会写程序,所以只能无限观望中。大伙儿不要笑我。