Migrating from Drupal 6 to WordPress

It’s been long overdue.  I’ve been hating Drupal for several years now, but I had cobbled together my own podcasting/class platform using CCK and Views in Drupal, and it just seemed like to big a job to migrate.  But Drupal forced my hand by making there be no easy upgrade path to Drupal 7 (and now 8 is about to come out).

So I followed this handy guide from Another Cup of Coffee on migrating Drupal sites to WordPress.

Some challenges and things I learned:

  • Following the guide:
    • The guide has directional (curly) quotation marks in it, so you’ll have to fix the queries before running them.
    • Even if you want to have custom table prefixes, stick with wp_ for the migration, and then change the prefixes.  Otherwise, you’ll have to manually fix every single query.  Same with the database names.
  • Migrating the Drupal vocabulary was the hardest part.  In the end, it would have been easier to simply convert everything to a tag and then use the WordPress Plugin Term Management Tools to turn the individual terms I wanted back into categories.
    • As I did it, converting the vocabulary probably took four hours, while the rest of the migration took about 30 minutes.
    • When I finally got done, the categories were associated with the correct posts, and they were available to assign to new posts in the author screen, but you couldn’t see any of them in the Categories screen in the dashboard.
    • To solve the problem, I had to set the parent value of all the categories to 0, and then re-assign the parent relationships in the dashboard.
    • Term Management Tools is very inconspicuous.  The only way you’ll know it’s installed is if you click the bulk actions drop down in Tag or Categories in the Dashboard.  It will let you merge multiple terms together or convert from Tag to Category or Vice Versa.  It will also let you set the parent term.
  • WordPress and Nginx do NOT get along well when WordPress is installed in a directory. The main site will work just fine, but wp-admin will likely generate infinite redirect loops.  I installed it that way so that it would be alongside my Drupal installation for migration purposes.  Typing wp-admin/index.php should prevent the redirect loop.
  • If you upgrade WordPress and get a completely white, blank screen, you probably erased the default theme or didn’t install the new default theme.
  • The Fruitful theme is awesome.  Their demo website’s humor is also a nice touch.
  • By default, WordPress menus only let you add (static) pages, categories, links, and custom.  If you click the screen options at the top, it will let you add posts, tags, and formats.
    • Actually, if you’re thinking to yourself, “WordPress should be able to do…why isn’t that an option?  Look in the screen options at the top.  A lot of functionality is hidden by default (I guess so as not to overwhelm the casual user).
  • If you want to have a hierarchy of pages, using WordPress pages is much easier than trying to configure nesting categories. For example, if I want patheyman.com/nursing/patho-pharm-1/intro
    • create a page (not post) for nursing
    • then create a page for patho-pharm-1 and have its parent be nursing
    • then create a page for intro and have its parent be patho-pharm-1
    • You might need to preview or publish the page to get the path to “take”, but it will be vastly easier than getting subcategories to work right.
    • Another perk of using pages rather than posts for this job is that pages have an order attribute, so you can sort them.
    • The only downside to this technique is that your parent page won’t automatically link to the child pages, but there is a workaround for that.
    • Making nested drop down menus out parent/child pages is trivial.
    • You’ll probably want breadcrumbs for your pages too, and that can be accomplished by plugins or by modifying your template.
  • I put this move off way too long.  WordPress is just so much easier to maintain and post.