能在一起要学会知足,期望放低一点,幸福就会多一点。

Drupal to WordPress

技术文档 10432浏览 0评论

我之前使用的系统是Drupal 5.11,在网上搜了一下,都是从Drupal 5 转到WordPress 2.0,然后升级到最新版,大概的转换步骤如下:

1. 备份Drupal数据库,并将网站设为为离线模式(offline);

2. 安装WordPress 2.0,数据库和Drupal使用同一个数据库,我的数据库名为dp5,通过不同的数据表前缀进行区分,我的Drupal数据表前缀为dp_,WordPres的数据表前缀为wp_。

3. 运行如下sql脚本进行数据库转换(我自己进行过一些修改,与网上提供的有所不同,转换成功):

use dp5; #修改为自己的数据库名
delete from wp_categories;
delete from wp_posts;
delete from wp_post2cat;
delete from wp_comments;

# 转换分类
INSERT INTO
wp_categories (cat_ID, cat_name, category_nicename, category_description, category_parent)
SELECT td.tid, td.name, td.name, td.description, th.parent
FROM dp_term_data td, dp_term_hierarchy th # 数据表前缀
WHERE td.tid=th.tid;

# 转换文章
INSERT INTO
wp_posts (id, post_date, post_content, post_title,
post_excerpt, post_name, post_modified,to_ping,pinged,post_content_filtered)
SELECT DISTINCT
n.nid, FROM_UNIXTIME(n.created), r.body, n.title,
r.teaser,
REPLACE(REPLACE(REPLACE(REPLACE(LOWER(n.title),' ', '_'),'.', '_'),',', '_'),'+', '_'),
FROM_UNIXTIME(n.changed),'','',''
FROM dp_node n, dp_node_revisions r #数据表前缀
WHERE n.vid = r.vid;

# category > post relationships
INSERT INTO wp_post2cat (post_id,category_id) SELECT nid,tid FROM dp_term_node ; #数据表前缀

# category count updating
UPDATE `wp_categories` SET `category_count` = (SELECT COUNT(`post_id`) FROM `wp_post2cat` WHERE `wp_categories`.`cat_ID` = `wp_post2cat`.`category_id`);

# 评论
INSERT INTO
wp_comments
(comment_post_ID, comment_date, comment_content, comment_parent, comment_author, comment_author_email, comment_author_url)
SELECT
nid, FROM_UNIXTIME(timestamp),
comment, thread, name, mail, homepage
FROM dp_comments ; # 数据表前缀

# update comments count on wp_posts table
UPDATE `wp_posts` SET `comment_count` = (SELECT COUNT(`comment_post_id`) FROM `wp_comments` WHERE `wp_posts`.`id` = `wp_comments`.`comment_post_id`);

# fix post slugs. first we have to remove the duplicate _____ chars, then replace that with a single - char
UPDATE wp_posts set post_name = REPLACE(post_name, '__', '_');
UPDATE wp_posts set post_name = REPLACE(post_name, '__', '_');
UPDATE wp_posts set post_name = REPLACE(post_name, '__', '_');
UPDATE wp_posts set post_name = REPLACE(post_name, '__', '_');
UPDATE wp_posts set post_name = REPLACE(post_name, '_', '-');

4. 经过转换之后,分类,文章和评论应该都已经转换成功。因为WordPress 2.0的配置文件中没有编码的选项,所以显示的时候可能就会出现乱码的情况,若数据库中的数据没有乱码,那可以忽略。然后按照升级步骤,从WordPress 2.0升级到最新版本即可,如我现在所使用的2.6.2版。

5. 转换之后,可能会出现一些小问题,如tags,都会变成分类,使用WordPress系统自带的分类转标签工具,可以手动地进行转换。其他的一些东西,也都可以进行手工调整。

进行上述操作之后,转换也算大功告成,接下来就是WordPress方面的事情了,根据自己的需要,添加风格,插件等。

转载请注明:自由的风 » Drupal to WordPress

发表我的评论
取消评论

表情

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (2)

  1. 支持你,很不错!很喜欢28

    情感密码2008-11-27 13:11 回复