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

织梦的文章标题、正文和栏目分别存放在三个不同的表上,但 WordPress 把文章标题和正文放在一个表上,栏目放在另外一个表上。为了简化后面的工作,第一步我首先把织梦的全站 RSS 文件 (rss.php) 保存下来 (参见这里制作该文件 http://bbs.dedecms.com/read.php?tid=261237),然后使用 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 为匹配点。