Z-Blog无缝转移到WordPress2.8

最近在筹划着把Zblog转移到 wordpress 系统,主要原因是空间的问题,以后可能就只用Dreamhost的PHP空间了,所以提前把博客也转移到Wordpress平台,免得到时候比较忙弄得手忙脚乱。说无缝转移主要是URL结构保持不变和Tag不变

网上搜索z-blog平滑转移到 WordPress平台的方法有很多,应该来说基本都是那么几个版本了,当然我没有具体去了解很多,就我看到的都是比较古老的了,不过Neeke提供了一个最新版本的转移到wordpress的方法,在文中也提及了一些SQL语句,在经过本人的使用后,发现其中有小小的Bug,于是在这里重新提醒一下各位同学。

为了能够实现zblog无缝转换到 wordpress , 我们大致需要分这么几步走,具体的情况可以见neeke的“ZBlog无缝转到WordPress”,本站不再赘述,只介绍应该修改的部分,以下红色标出的部分均是已经修改好的部分。

1、将Z-Blog博客数据导出为Movetype格式

2、在 WordPress中导入Movetype 格式的博客数据

3、制作文章别名SQL语句

这里利用Neeke的方法会有一点小小的问题。我的处理方法是使用文章建立时间来代替文章标题这一条件去查询表中数据。主要原因在于Wordpress2.8(我用的是2.8版本,至于2.7或者更低版本的怎么样不同清楚)导入Movetype格式数据后,文章标题使用的存储编码可能不同,导致你自己看到的是一堆类似 “名第一的建议” 的东西,使用Neeke的方法会出现错误。

上面这句话你没看懂没关系,重点是接下来的:用office打开ZB的数据库文件,删除blog_Article表中字段,只保留log_ID、log_Url及log_PostTime。然后重新设计此表,将log_ID的主键属性删除,并将数据类型改为“数字”。 接着用月光提到的db2mysql生成blog_Article表的MYSQL语句。软件下载地址:ACCESS数据库转换MYSQL数据库的软件

4、更新文章别名,保持网站URL结构不变

进入phpmyadmin中使用如下SQL语句创建一张表。

CREATE TABLE blog_Article (
log_ID int NOT NULL ,
log_Url varchar (255) NULL,
log_PostTime datetime NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

接下来将db2mysql生成的blog_Article表的MYSQL语句放到phpmyadmin中执行。

然后执行下面的SQL语句

update wp_posts,blog_article set wp_posts.post_name=blog_article.log_Url where wp_posts.post_date=blog_article.log_PostTime

这一步要注意的地方在于以上蓝色部分,即wp_posts应该按照自己数据库中表的标题格式修改,比如说本人Wordpress数据库中的表就是用了类似以下的标题:wp_bvua41_posts,也就是说那么我自己就要使用如下的语句:

update wp_bvua41_posts,blog_Article set wp_bvua41_posts.post_name=blog_Article.log_Url where wp_bvua41_posts.post_date=blog_Article.log_PostTime

接下来继续执行如下语句:

update wp_posts,blog_article set wp_posts.post_name=blog_article.log_ID where wp_posts.post_date=blog_article.log_PostTime and wp_posts.post_name=‘’

请注意最后红色标注的‘’ 实际上是两个半引号。即‘   ’,当然中间没有空格

5、配置链接显示形式,实现完美转移

好了,以上就是对Neeke版本的 z-blog 无缝转移到 WordPress 方法的一点修改。希望对想切换到Wordpress平台的博友有用。

最后再YY一句,以上的方法还不能解决分类和Tag页的链接问题,分类以及tag的链接还是只能手动修改……懒得研究了……有谁有方法给介绍个吧

Leave a Reply

Your email address will not be published. Required fields are marked *