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的链接还是只能手动修改……懒得研究了……有谁有方法给介绍个吧
我再坚持一阵子,看看zblog新版发布后能有多大改进,如果还是现在那样子,我也准备换wp哈~
不一样的分类和tag的链接可以写个插件让程序生成和zblog一样的链接,然后再用伪静态把错误链接指向正确链接。>.<!
好像转好了?主题很清爽~
@Nobird:很仓促的转了。因为DNS设置出了毛病,结果收录了一个空白的首页,于是就只好提前迁移了……
文章中的wp_bvua41_posts.post_post_date应该是wp_bvua41_posts.post_date吧,不过很奇怪,我按照这个操作了两次,每次做的时候也没提示错误,最终我把地址设置后再打开就404,,,郁闷…
wp_posts.post_name=‘’这两个单引号是半角的还是全角的?
好像我明白怎么回事了,wp的tag中不允许有点.直接操作数据库没有过滤这些…所以就404了…
@Nobird:好像是我自己弄错了呢,该是wp_bvua41_posts.post_date吧。后边是两个半引号,空值
你的主机是linux的吧? 我在我空间上怎么弄也弄不成原有链接格式,最后居然找到这个http://tech.einaregilsson.com/2007/07/30 /pretty-wordpress-permalinks-on-iis/ 这么一来,404页面就要返回200代码了…看来要用wp,还真得换空间了…:(
@zp1214:
其实neek的那个也正常,我刚试了,没有乱码,可能是你在pma中执行db2sql生成的语句文件的时候,没有选择编码,而默认的编码是utf-8,那个程序生成的语句编码是ansi的,要选择gbk的就行了~
@Nobird:呃。没注意……应该是的
我用Linux的空间。你空间到13年到期不是么,还是别换了吧
呵呵 我自己转的时候也正常
特殊情况特殊处理吧 嘿嘿
@neeke:可能吧,我用你的方法反正是没转成功
[...] 活着利用neeke所说的方法再加上自己的一点改动,算是基本解决了z-blog转移到Wordpress的问题,也算把URL和tag等都无缝转移了过来,不过在使用过程中还是发现了不太对劲的两个地方。一是文章浏览数,二是simple tags插件的Autolink功能不太正常。 [...]