dedecms转wordpress详细版,成功版,经典版

程序开发 admin 6年前 (2013-07-16) 6974次浏览 未收录 2个评论

一直用dedecms用了3年了快,直到近期两个星期被挂黑链两次,问题是不知道怎么解决,dedecms官方也不填补漏洞,失望了有木有,so决定转换到别的程序,找了好久也找到好的程序,一我没接触过别的cms程序,如果转换到别的不熟悉的程序首先模板就是个问题,自己接触的程序除了dedecms就wordpress熟点,本博客就是wordpress搭建的。so决定换wordpress,怎么换呢,只能求助我老婆度娘,百度了很久,谷歌了n下,看到的教程,一个样的,而且很不详细。这里我就不发他们的教程了。但很感谢他们的教程,他们的教程给了我思路。在正式写之前首页感谢crifan在路上这里朋友。教程正式开始:

首页dedecms制作全站rss。去http://pan.baidu.com/share/link?shareid=1276123636&uk=202706418下载文件里面有详细的教程,制作完全站rss后,要修改下rss.htm,教程里的文件里有这句代码{dede:arclist row=’100′ col=’1′ titlelen=’100′ orderby=’pubdate’}。row=100。首先查看自己的dedecms的文章看大约总共多少条。r0w的数值一定要比你的文章数大或者相等,不然导入数据的时候会有数据未导入。制作好全站rss后,下载网站的rss数据,http://你的dedecms域名/rss.php。将dedecmsrss下载下来后,需要改几个地方。为了测试我开了两个网站测试,www.diaoyudiao.org是dedecms网站,www.diaosinanshi2.com是wordpress测试网站。打开rss.php文件将<rss version=”2.0″>换成

<rss version=”2.0″
xmlns:excerpt=”http://wordpress.org/export/1.2/excerpt/&#8221;
xmlns:content=”http://purl.org/rss/1.0/modules/content/&#8221;
xmlns:wfw=”http://wellformedweb.org/CommentAPI/&#8221;
xmlns:dc=”http://purl.org/dc/elements/1.1/&#8221;
xmlns:wp=”http://wordpress.org/export/1.2/&#8221;
>。然后在

你的<language>zh-cn</language>下面加上wxr的版本号
<wp:wxr_version>1.2</wp:wxr_version>。这个版本号,对于这个版本号本人没研究。如果你想知道的话就点击下载导出的文件里就有版本号。我wordpress用的最新的版本号1.2。rss.php先暂时告一段落,开始折腾wordpress。wordpress安装好后清空wp_posts里的所有的记录。至于为什么这么做你先照做就是了。后面给给你解释的。删除记录后。改下wp_posts下的id字段递增的初始值,更改的方法可以用各种mysql工具,也可以直接改sql文件。找到sql文件里类似这样的一段代码

DROP TABLE IF EXISTS `wp_posts`; CREATE TABLE `wp_posts` ( `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_author` bigint(20) unsigned NOT NULL DEFAULT ‘0’, `post_date` datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’, `post_date_gmt` datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’, `post_content` longtext NOT NULL, `post_title` text NOT NULL, `post_excerpt` text NOT NULL, `post_status` varchar(20) NOT NULL DEFAULT ‘publish’, `comment_status` varchar(20) NOT NULL DEFAULT ‘open’, `ping_status` varchar(20) NOT NULL DEFAULT ‘open’, `post_password` varchar(20) NOT NULL DEFAULT ”, `post_name` varchar(200) NOT NULL DEFAULT ”, `to_ping` text NOT NULL, `pinged` text NOT NULL, `post_modified` datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’, `post_modified_gmt` datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’, `post_content_filtered` longtext NOT NULL, `post_parent` bigint(20) unsigned NOT NULL DEFAULT ‘0’, `guid` varchar(255) NOT NULL DEFAULT ”, `menu_order` int(11) NOT NULL DEFAULT ‘0’, `post_type` varchar(20) NOT NULL DEFAULT ‘post’, `post_mime_type` varchar(100) NOT NULL DEFAULT ”, `comment_count` bigint(20) NOT NULL DEFAULT ‘0’, PRIMARY KEY (`ID`), KEY `post_name` (`post_name`), KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), KEY `post_parent` (`post_parent`), KEY `post_author` (`post_author`) ) ENGINE=MyISAM AUTO_INCREMENT=84 DEFAULT CHARSET=utf8;将最后这句的auto—increament=84 。84的数值是多少,是有你dedecms文章的id的数值决定的。看你文章的最大id是多少。然后auro—increment的数值一定要大于你dedecms文章最大的id的数值。不然会出错。然后在你的Wordpress里创建你原dedecms 的目录我原网站。创建好后
将内容导出去。我文件是这样的。将类似 <wp:category><wp:term_id>1</wp:term_id><wp:category_nicename>wangzhan</wp:category_nicename><wp:category_parent></wp:category_parent><wp:cat_name><![CDATA[网站]]></wp:cat_name></wp:category>分类代码复制到你rss.php下、这是我rss.php复制过去后。然后在你每个item里将<category>网站</category>换成Wordpress目录形式。

<category domain=”category” nicename=”wangzhan”><![CDATA[网站]]></category>。换完后在后面添加<wp:post_type>post</wp:post_type> 这是文章类型。亲目录不要光复制我的奥。看自己的分类是什么就写什么。记住是每个item都要改的。亲用文本工具什么word之类的替换的吧,开始导入rss.php。选择倒数第二个wordpress第一次用的话得安装。安装点击下就ok了。导入中遇到什么问题找我私聊。这里就不多说了。导入后的效果

到现在这步我们已经成功导入文章的标题了。下一步导入文章的内容。

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为匹配点:

  1. UPDATE?`dede_archives`,`dede_addonarticle`
  2. SET?`dede_archives`.`body`=?`dede_addonarticle`.`body`
  3. WHERE?`dede_archives`.`id`?=?`dede_addonarticle`.`aid` ? 。执行完后将dede_archives备份下来导入到wordpress的数据库中。接下来把整个dede_archives表导入到WordPress的数据库上,使其与wp_posts同在一个数据库下。再次使用UPDATE命令把,把dede_archives上的body导入到wp_posts上的post_content上,以文章标题为匹配点 (前提是,你的文章标题都是唯一的):
    1. UPDATE?`wp_posts`,`dede_archives`
    2. SET?`wp_posts`.`post_content`=?`dede_archives`.`body`
    3. WHERE?`wp_posts`.`post_title`?=?`dede_archives`.`title` ? 执行此语句后正常的话dedecms里的文章已经成功导入。

可以去我测试网站www.diaosinanshi2.com看看测试效果的。文章虽然出来了有朋友问但图片挂了。亲看下图片地址。直接将dedecms的uploads目录放到wordpress根目录就好了。以上内容都可以在网上找到参考。以下内容是网上没有的请仔细看。

文章虽然都搬过去了。但是地址不对,要是做了好几年的网站,一下子网站内容地址都改了这不就悲催了吗。不扯了直入正题。

在dede—archives里创建个字段 字段名称test类型什么和id一样。

然后将id的内容导入到test字段里面update dede_archives set test=id

最后导出dede_archives ,将dede_archives.导入到wordpress中。

最后执行

UPDATE `wp_posts`,`dede_archives`
SET `wp_posts`.`ID`= `dede_archives`.`test`
WHERE `wp_posts`.`post_title` = `dede_archives`.`title`这段代码。这段代码的意思是将test的值传给ID。

文章已经解决尾声。安装WP No Category Base插件。将固定链接改成。/%category%/%post_id%.html这样文章地址已经保持一致。虽然天朝不在乎版权。亲我手敲了两个多小时写出来的。亲复制粘贴的时候转载的时候挂上本文链接不然我转个圈圈诅咒你。。还有就是目前我www.diaosinanshi2.com的网站没做伪静态所以打开文章链接是404.亲看教程自己折腾的吧。。

还有就是可能有看到教程有的地方啰嗦什么的。主要让新手看。。。说的详细点哈哈。。


华仔博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:dedecms转wordpress详细版,成功版,经典版
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 面临节日快到了先祝贺楼主节日快乐,祝贺楼主幸福,圆满,安康一家团聚中秋快乐
    北京装修公司2013-09-03 13:33 回复
  2. 谢谢分型,不错!!
    网络营销博客2013-12-24 14:42 回复