z-blog转移到wordpress的两个小问题
活着利用neeke所说的方法再加上自己的一点改动,算是基本解决了z-blog转移到Wordpress的问题,也算把URL和tag等都无缝转移了过来,多个tag也能正常,不过在使用过程中还是发现了不太对劲的两个地方。一是文章浏览数,二是simple tags插件的Autolink功能不太正常。
第一个问题关于文章浏览数导入到WP-PostViews插件
月光的通过SQL语句转换WordPress数据中有过描述,文中提到了如果安装了WP-PostViews插件,还可以执行下面的SQL语句将文章点击数导入到WordPress中:
INSERT INTO `wp_postmeta` select log_ID , log_ID ,’view’,log_ViewNums FROM blog_Article ;
然而或许是由于版本不同的关系,WP 2.86数据库的结构有所改动,wp_postmeta 表中已经删除了log_ID这一项,而只有meta_id和post_id这两项,而wp_posts数据表中的ID实际上并非zblog导出的文章ID而是一组自动排序的数字。另外,view项现在已经改成了’views’。如果想要导入文章浏览次数,还需要对数据查询方法进一步的修改。wp_postmeta数据表格的结构如下:

wp postmeta 表格
该数据表格格式中,meta_id是一个自动编号的数据,所以不用理睬。
本人查询了一下 PostViews 插件的函数,发现其中存在这样的几行:
1 | get_results("SELECT DISTINCT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date < '".current_time('mysql')."' AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_password = '' ORDER BY views DESC LIMIT $limit"); |
从中看得出来,现在版本的wp PostViews 插件使用了关联数据查询的方法,而我们要想导入文章浏览数还远不止如此简单。
我的思路是首先利用文章标题相同这一条件找出该文章的posts.ID与blog_Article中的log_ID,然后将数据插入到wp_postmeta表中,post_id的值等于posts.ID,meta_key的值等于views,而meta_value则使用找到的log_ID对应的log_ViewNums值这样就能够解决文章浏览量的问题。
可惜本人SQL不慎了解,还请大牛指点了。
第二个问题是 Simple Tags 自动链接不太正常
这个问题不知道是由于该功能对中文支持不好或者是我在导入的时候没有注意好编码,因为我目前在数据库中去查看任何中文的部分,保存的都是一些看起来像乱码的结构。
希望哪位能够好好的研究一下以上两个问题,这样才算真正做到了z-blog和wordpress之间的无缝转移。找到解决的办法还请麻烦通知活着哦

呵呵,你终究还是转了哈。我前几天试着安装了下WP,但是操作起来和ZB差别有些大,不太习惯。你好好揣摩下哈,到时候传授些经验,我也搭建WP哈~
@响石潭:不知你装的是不是中文版本呢。我觉得是很好用了,我大概用了半年多了,比较习惯了……有什么问题我可以帮助你的了
我也很想将我的网站http://www.combine-inst.com/cz/转移到wp下面,却不知道具体怎么操作。
不知道该怎么操作