织梦DedeCMS网站如何转换使用WordPress程序?

2021-10-8 12:41| 发布者: admin| 查看: 13| 评论: 0

摘要: 最近,因为dedecms商用收费问题,很多用户想把网站转到wp,源站用的dede,需要转成wp,文章数量大概7000-8000篇,其中有个需求是保证旧文章的链接有效,在wp上的新文章与旧文章的链接类型不一样,所以这涉及到伪静态 ...
最近,因为dedecms商用收费问题,很多用户想把网站转到wp,源站用的dede,需要转成wp,文章数量大概7000-8000篇,其中有个需求是保证旧文章的链接有效,在wp上的新文章与旧文章的链接类型不一样,所以这涉及到伪静态来处理跳转。虽然网上都很多教程,但是在这次导入过程中还是遇到过一些问题。

以下教程是dede的数据表得与wp的数据表在同一个数据库下!要是不在,可以将dede_archives先导入到wp的数据库里。

一、一般流程
1. 文章标题等基本数据导入
织梦的文章标题、正文和栏目分别存放在三个不同的表上,但WordPress把文章标题和正文放在一个表上,栏目放在另外一个表上。
为了简化后面的工作,第一步我首先把织梦的全站RSS文件(rss.php)保存下来,然后使用WordPress自带的RSS导入该文件。这样就可以使WordPress在wp_posts上生成文章标题,在dede_terms上生成文章目录,并匹配起来。通过RSS导入,wp_posts上还导入了文章的摘要、日期、自定义网址等数据。但RSS导入不会导入全文。

2. 文章全文导入
织梦数据库的文章全文储存在dede_addonarticle表上的body里,我们要把这个body的内容转到Worpress数据库里wp_posts表上的post_content里。
这个转换,需要使用一个桥梁——那就是dede_archives,即dede_addonarticle上body的内容先转到dede_archives上,再从dede_archives上再转到wp_posts上的post_content里。这两次转换的匹配点,分别是织梦里的文章id,以及Wordpress里已经导入了的文章标题(这与织梦里的文章标题是一样的)。

具体步骤如下:
进入phpMyAdmin,在织梦数据库里的dede_archives表上,添加一个列,命名为body,然后用UPDATE命令把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`
接下来把整个dede_archives表导入到WordPress的数据库上,使其与wp_posts同在一个数据库下。
再次使用UPDATE命令把,把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`

3. 文章点击数导入
在WordPress上安装一个叫Simple Hit Counter的Plug-in,这样数据库里就出现一个叫wp_hitcount的表。
在wp_posts增加一个叫hits的column,然后把dede_archives上的点击数click导入到wp_posts的hits上,仍然以标题为匹配点。
最后把wp_posts的hits导入到wp_hitcount的hits上,这次以wp_posts的ID和wp_hitcount的pid为匹配点。

二、常见问题
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后台——设置——固定连接,修改成默认,问题就解决了。

4、在文章全文导入的时候,可能由于文章数量很多,一次性执行sql语句后导致mysql直接挂掉了(这个看各自服务器性能,乐天的这个客户用的是win主机,性能并不好),所以无奈只能分批次来转换,例如通过wp_posts表里的ID区间来分批转换。
UPDATE wp_posts,dede_archives SET wp_posts.post_content = dede_archives.body WHERE wp_posts.post_title = dede_archives.title and wp_posts.ID < 501
UPDATE wp_posts,dede_archives SET wp_posts.post_content = dede_archives.body WHERE wp_posts.post_title = dede_archives.title and wp_posts.ID < 1001 and wp_posts.ID > 500
以此类推,看你文章多少来决定,我每次执行时间是2两多钟。而且在导入过程中还会出现error,提示字符串的问题。

鲜花

握手

雷人

路过

鸡蛋

相关阅读

全站热门

2021年pos机怎么选?

2021年pos机怎么选?

admin2021-12-12 热度:4℃

办理pos机有哪些好处?

办理pos机有哪些好处?

admin2021-12-12 热度:4℃

pos机赚的什么钱?

pos机赚的什么钱?

admin2021-12-12 热度:4℃

pos机转账怎么用?

pos机转账怎么用?

admin2021-12-12 热度:5℃

pos机磁条卡怎么放?

pos机磁条卡怎么放?

admin2021-12-12 热度:4℃

哪里可以免费办pos机?

哪里可以免费办pos机?

admin2021-12-12 热度:4℃

QQ|Archiver|手机版|小黑屋|蓄财网 ( 豫ICP备2021002293号 )

GMT+8, 2021-12-12 15:38 , Processed in 0.092416 second(s), 31 queries .

蓄财网 ©版权所有

© 2021 蓄财网(www.aixc.cn)

返回顶部