Blog

DEDECMS数据转换到WordPress系统

刚开始接触cms时用的是dedecms,有几个网站都使用这个内容管理系统做的,后来逐渐转移到了wordpress,就想把以前dedecms做的网站的数据转换到wordpress,但过程没有我从emlog转移到wordpress这么方便,步骤复杂了些,不过只要能达到目的就好了。

1. 文章标题等基本数据导入

织梦CMS的文章标题、正文和栏目分别存放在三个不同的表上,但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_addonarticle`
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为匹配点。

11 comments

  1. 假日

    杯催了 我该怎么办啊

    沙发
  2. 假日

    dede转到WP教程上面的可以用吗?你的采集数据是什么意思

    板凳
    • 追梦人博客

      我没试过哦 就是用采集软件把我dede站的内容采集到wp上去

  3. 假日

    我想把dedecms转换到EMLOG不知到该怎么转换 请指教

    地板
    • 追梦人博客

      dede直接转到emlog我没试过也没找到相关教程,倒是可以通过wordpress做中介来转到emlog,我前段时间从dede转到wp是通过采集数据到wp的,有点麻烦

  4. 大路

    嗯,很好,哈哈哈,正想转移,DEDECMS越是到最后越是让人觉得无奈,模板太少,插件太少,希望看完你这个能转移成功,哈哈哈 😉

    4楼
  5. 我爱上QQ

    说明wordpress还是挺受欢迎的~

    5楼
  6. 微库网

    真的很不错 值得分享一下啊

    6楼

Leave a Reply