一直用dedecms用了3年了快,直到近期两个星期被挂黑链两次,问题是不知道怎么解决,dedecms官方也不填补漏洞,失望了有木有,so决定转换到别的程序,找了好久也找到好的程序,一我没接触过别的cms程序,如果转换到别的不熟悉的程序首先模板就是个问题,自己接触的程序除了dedecms就wordpress熟点,本博客就是wordpress搭建的。so决定换wordpress,怎么换呢,只能求助我老婆度娘,百度了很久,谷歌了n下,看到的教程,一个样的,而且很不详细。这里我就不发他们的教程了。但很感谢他们的教程,他们的教程给了我思路。在正式写之前首页感谢crifan在路上这里朋友。教程正式开始:
首页dedecms制作全站rss。去链接: https://pan.baidu.com/s/1mfhl_YO-C_yt5c3HxTLV1A 提取码: aec6 下载文件里面有详细的教程,制作完全站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/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:wp="http://wordpress.org/export/1.2/"
>。然后在
你的<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为匹配点:
- UPDATE?`dede_archives`,`dede_addonarticle`
- SET?`dede_archives`.`body`=?`dede_addonarticle`.`body`
- WHERE?`dede_archives`.`id`?=?`dede_addonarticle`.`aid` ? 。执行完后将dede_archives备份下来导入到wordpress的数据库中。接下来把整个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` ? 执行此语句后正常的话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.亲看教程自己折腾的吧。。
还有就是可能有看到教程有的地方啰嗦什么的。主要让新手看。。。说的详细点哈哈。。
文章评论
面临节日快到了先祝贺楼主节日快乐,祝贺楼主幸福,圆满,安康一家团聚中秋快乐
谢谢分型,不错!!