心有梦想,懒鸟也能飞,大家好,这里是懒鸟飞。本节课主要讲解一下把织梦dedecms网站转换成wordpress网站的方法。
 
-------------------课程大纲-------------
1、转换之前的准备工作
2、Dedecms转wordpress详细流程
3、转换过程中常见问题
 
------------------课程内容--------------

 
一、转换之前的工作

1、准备测试网站
    在测试环境中,分别搭建了一个织梦站点和一个wp站点,并且分别用不同的数据库。(当然安装在同一个数据库中也可以,不过为了方便新手理解,这里每个网站都用单独的数据库)
 
2、转换目标和结果
    通常我们把织梦转换成wordpress的目标,最重要的就是把网站栏目和栏目对应的文章转换过去。
 
    本教程的转换结果是,可以把文章栏目、文章标题、文章内容、文章日期、文章点击数文章分类都转换成功,但文章tag标签转换不过来,不过不影响网站内容,所以这里不转换tag标签。
 
3、操作前请备份好织梦网站数据。
    如果不会织梦网站备份还原,可以到懒鸟飞上直接搜索织梦备份还原的相关教程。
 
二、Dedecms转wordpress详细流程
 
1、DEDECMS文章标题等基本数据导入wordpress站点
 
    织梦CMS的文章标题、正文和栏目分别存放在三个不同的数据表中,而wordpress则把文章标题和正文放在一个数据表,栏目(分类目录)放在另一个数据表中。
 
(1)第一步是制作生成织梦CMS的全站RSS文件
    生成rss的方法,请查看懒鸟飞的《生成织梦Dedecms全站RSS文件的方法》。
 
(2)然后通过wordpress程序后台——工具——导入——RSS,上传导入生成的织梦全站RSS文件。
 
    这样就可以使wordpress在wp_posts数据表上生成文章标题,在wp_terms数据表上生成文章分类,并匹配起来,此外通过RSS导入,wp_posts数据表上还导入了文章摘要、日期、自定义网址等数据,但是RSS不会导入全文!
 
 
2、导入织梦CMS文章全文到wordpress站点
 
    织梦文章的数据存储在dede_addonarticle数据库的body字段中,现在需要把body字段的内容转到wordpress数据库的wp_posts数据库的post_content字段里。
 
    这个转换需要使用一个桥梁——那就是dede_archives数据表,即dede_addonarticle上body的内容先转到dede_archives上,再从dede_archives转到wp_posts的post_content里。这两次转换的匹配点,分别是织梦里的文章id,以及Wordpress里已经导入了的文章标题(这与织梦里的文章标题是一样的)。
 
 
具体的操作步骤如下:
 
(1)进入phpmyadmin,选择dedecms网站使用的数据库,在SQL输入框中执行以下SQL语句,在织梦数据库的dede_archives表上,添加字段body:
 
ALTER TABLE dede_archives ADD body longtext NOT NULL
 
(2)然后再执行以下SQL语句把dede_addonarticle数据表中的body字段内容导入到dede_archives的body字段,语句以dede_addonarticle的aid和dede_archives的id为匹配点:
 
UPDATE dede_archives,dede_addonarticle
SET dede_archives.body = dede_addonarticle.body  
WHERE dede_archives.id = dede_addonarticle.aid 
 
(3)接着通过phpmyadmin导出功能把dede_archives数据表导出。
 
(4)然后再把dede_archives导入到wordpress网站使用的数据库中,使其与wp_posts数据库处在同一个数据库里。
 
(5)下面再次使用SQL语句把dede_archives的body导入到wp_posts上的post_content上,以文章标题为匹配点(前提是文章标题都是唯一的):
 
UPDATE wp_posts,dede_archives  
SET wp_posts.post_content = dede_archives.body  
WHERE wp_posts.post_title = dede_archives.title
 
至此文章内容部分转换完成!
 
(6)之后把原织梦网站根目录的uploads文件夹,搬到wordpress根目录,这样网站文章中的图片调用就正常了。
 
 
3、织梦CMS文章点击数导入wordpress网站(选修)

    (网站转移主要是转移文章栏目和文章内容,所以做完上面两步就可以了,如果对转移点击数感兴趣,可以看这个知识点,这个转移点击数知识点不是必修)
 
    织梦CMS的文章有点击数(即是文章的阅读数),wp默认是没有点击数的,需要给wp安装Simple Hit Counter插件,启用后数据库里会生成wp_hitcount表,在SQL输入框中执行以下语句在增加hits字段:
 
ALTER TABLE wp_posts ADD hits int(10) NOT NULL
 
 执行以下SQL语句,把dede_archives上的点击数click导入到wp_posts的hits上,仍然以标题为匹配点:
 
UPDATE wp_posts,dede_archives  
SET wp_posts.hits = dede_archives.click  
WHERE wp_posts.post_title = dede_archives.title
 
 最后执行以下SQL语句把wp_posts的hits导入到wp_hitcount的hits上,这次以wp_posts的ID和wp_hitcount的pid为匹配点:
 
UPDATE wp_posts,wp_hitcount 
SET wp_hitcount.hits = wp_posts.hits 
WHERE wp_hitcount.pid = wp_posts.ID

至此点击数转换完成,然后在模板中添加Simple Hit Counter插件调用代码即可。
 
附:我习惯使用wp-postviews插件,所以我是把织梦CMS文章点击数转换为wp-postviews插件的浏览数。但是由于该插件需要文章有浏览数之后才会在数据库中生成meta_key的值,因此需要先在
 
wp_postmeta表中添加对应的meta_key的值。
 
执行以下SQL语句,把文章ID导入wp_postmeta中的post_id字段:
 
 
INSERT INTO wp_postmeta(post_id) SELECT ID FROM wp_posts
 
 执行以下SQL语句,把上面添加的post_id中的meta_key字段的null设置为views值:
 
 
UPDATE wp_postmeta SET meta_key='views' WHERE meta_key IS NULL
 
 执行以下SQL语句,把上面添加的post_id中的meta_value字段的null设置为0值:
 
 
UPDATE wp_postmeta SET meta_value='0' WHERE meta_value IS NULL
 
 然后再把wp_posts的hits导入到wp_postmeta数据表中的meta_key字段的值views对应的meta_value,SQL语句如下:
 
 
UPDATE wp_postmeta,wp_posts 
SET wp_postmeta.meta_value=wp_posts.hits 
WHERE  wp_postmeta.post_id=wp_posts.ID AND meta_key='views'
 
 
 
三、转换过程中常见问题
1、把rss.xml导入wordpress时提示不能获取文章id
    Rss.xml编码如果和wp系统的编码不一样,在导入wp时,就会提示不能获取文章id。例如你用的织梦是gbk版本的,而默认的wp是utf版本,就会提示这个错误了。如下图:

 
解决方法:很简单,如果你用的是织梦gbk,那么生成的rss.xml就是gbk的,用dreamwear等编辑工具,把rss.xml改成utf的,之后导入wp,问题就解决了。
 
2、导入rss.xml的文章数量限制
    当你的织梦内容很多时,例如有好几万篇文章,那么导出的rss.xml中也就包含几万标题。在导入wp时,在导入到2000左右就会卡住,不能导入了。
 
    解决方法:很简单,只要把rss.xml重复导入到wp就可以了,因为第二次导入rss.xml时,第一次导入的内容会被跳过,第二次会导入新的内容,重复导入几次后,rss.xml就完全导入成功了。
 
3、如果织梦数据导入wordpress后,wp网站首页内容显示正常,但内容页没有显示内容。如下图:

上图是首页显示的内容,有标题、有内容、有图片。但点击文章,进入文章内容页面却没有内容,如下图:


这应该是你wp的固定连接问题,解决方法:wp后台——设置——固定连接,修改成默认,问题就解决了。如下图:


 
    好了,上面就是织梦dedecms转换wordpress的整个流程,新手可以在测试环境中练习一下。
    如果大家还想学习更多的织梦建站知识,请关注懒鸟飞。心有梦想,懒鸟也能飞。
 
    本节课到此结束,谢谢观看。