Migrate a WordPress site to Drupal

Recently I've been helping a few folks convert websites from to . Presently this works for migrating to Drupal 5 so if you want a Drupal 6 site first migrate to Drupal 5 and then upgrade the site to Drupal 6.

There are a couple of different ways of approaching this task. In the distant past I've worked with . Those experiences are a distant enough memory that I can't speak to it one way or another. It does seem that it has been a while since that module was upgraded. On the other hand is undergoing active development. One user I worked with in IRC was struggling with wp2drupal and found Wordpress Import to be very simple. Also a note that the Wordpress Import module has been updated since I've used it so some of the steps may not be necessary.

The process really couldn't be simpler. Start with an WordPress export of an extendedRSS file. With this in hand you'll need a Drupal site setup. The site can either be new or an existing site but these hints apply to using a new site. The import process is very simple you select the extendedRSS file and tell Drupal which WordPress users map to which Drupal users. With that done the data now resides in the Drupal database. Things are pretty good but there are a few tweaks that make things better. The creation time for the items has been set to the creation time from WordPress. However, the updated time is set to the time of the import. This really matters most if you have search enabled on your site. Search results show the time changed in the display.

Dreamweaver vs. Content Management part II

My position on Dreamweaver is no secret. Last fall I was talking with a colleague and journalism professor about the need for journalism schools to teach content management principles as part of their programs. A communications professional who knows nothing about Dreamweaver can have a bright future. A communications professional who knows only a little about content management is in big trouble.

After we were discussing the course yesterday evening I opened up Google Reader and read Ken Rickard's post about Amy Gahran's wonderful Poynter Online article about just this topic. Here are some of the high points from Gahran's article:

Apparently, this j-school (like many others) offers little or no training in true CMS-based tools. Their online courses focus on Dreamweaver.

That's a big problem, because tools embody mindsets. Focusing on Dreamweaver teaches exactly the wrong mindset for online journalism: that your Web site is mainly an island unto itself.

Occam's razor applies to technology too

Sometimes it takes a simple reminder that Occam's razor or the keep it simple stupid principles apply to most things in the technical realm just as it does to the real world.

In the server meltdown last week the data was all recovered but some problems with the backups made it impossible to get all of the file directories. The net result was a friend's WordPress blog melted down. Or at least all the goodies were gone. In the process of renewing the site and getting it updated a tagging plugin no-longer worked. As we talked this afternoon I looked through the database and figured out the schema and what was happening. Quickly enough I hit on a few simple queries and realized I could convert the data.

After another backup of the database it was time to set about migrating the data. The first query is:

INSERT IGNORE into wp_terms (slug, name, term_id) SELECT lower(replace(replace(replace(wp_tags.tag, '.' , ''), "'", ""), "", '')) a, replace(replace(wp_tags.tag, '-', ' '), '_', ' ') b, NULL
FROM wp_tags

That runs perfectly and it was time for step two. Or it was really time for step one. Not a major WordPress user I am not terribly familiar with the community. But it hit me that I was probably not the first person to be doing this. Maybe somebody else had published the SQL to make this process easier.

Subscribe to WordPress