A Journey of Drupal and WordPress

As the leader of the Albuquerque Drupal Users group there is a constant push and pull between myself and Karen Arnold, the leader of the Albuquerque Wordpress group. We both love our platforms and do great work in them. I also can claim responsibility for part of the problems, as I was the one that decided to have our meetups on the second Thursday of the month, which falls directly on the same time that their monthly meeting happens. Mea culpa. To help alleviate the pressure, the other group will occasionally come to where we meet up and we have a nice social scene. It helps that the ADU group meets at Adieux Cafe, a place that serves great food and drinks. (WIN)

A few months ago, I received a call from Karen who asked to present to the WP group to discuss how to transfer a site from Drupal to WordPress. My first response was “Why would I do that?”, but having never been posed with that task before, I thought it would be neat to try. I have moved sites from WP to Drupal, and even begrudgingly added a WP blog to a Drupal instance (don’t ask). But never a full conversion of Drupal to WP. After some poking at WP and knowing Drupal as I do, I decided this was never something I want to do. Not because of a fictitious blind hatred for the other platform, but more because the two platforms serve content with two very different styles, and trying to mold one into the other is a fools errand.

There are plenty of plugins that claim this is a trivial task, but after trying to convert a personal Drupal based site to WP, I will refer to them as big fat liars. The site I tried to convert (http://www.abqwebgeeks.org) only has four content types (pages, articles and two types of events). There were some plugin services for WP who promised success for a fee, but that was out of budget and what could we learn from letting someone else do the task.

There are a couple of reasons for this failure. The first and foremost, in my eyes, is the vast difference between the schema of the two platforms. WordPress has fewer tables than Drupal and a good portion of the data is serialized into a ‘meta’ table. While this makes for a fast render in WP, it makes taking content from multiple sources and smooshing (yes, that’s a word) it into a single field difficult. Even custom programming that feat is something I would personally like to avoid.

Another large difference between the two is Drupal’s ability to handle multiple content types. WordPress was designed around two content types, pages and posts. This makes it difficult for WordPress to handle more types. It is possible with a variety of plugins, Easy Post Types being the first to come to mind, it isn’t done in a simple way to pull data from Drupal. The new post type has to be already generated and built out.

Which brings up the User content type. Users in WordPress are their own entity, yes, but there is nothing that binds them to other entities like Drupal does. They are on their own island. Also, and again, adding fields to Users is something that wasn’t planned on. User roles are easily mapped, though permissions settings do get lost. This is because WordPress was designed around the idea of two roles, Admins and Publishers.

Taxonomies are another thing WordPress isn’t designed to work with. Tagging posts is easy, and you can have multiple tag categories, but this is not as robust as Drupal’s Taxonomy entity. They aren’t fieldable, that I have seen, so they tend to be very vanilla, while I have seen Drupal sites built around the terms that define the content. That robustness of Drupal does not bend well into the WordPress box.

The final sticky point I talked about was the differences in theming between Drupal and WordPress. WordPress theming can be done in the admin interface. This tends to cause developers to throw the idea of MVC right out of the window and slam it shut. Logic can be, and often is, embedded directly into WP themes. Granted, I have seen this in some Drupal sites I have picked up for maintenance. And, yes, the original developer was more often than not, more proficient in WordPress than Drupal. That being said, there is no straight way to pull a theme from Drupal and stuff it into WordPress.

The talk was targeting the WordPress group. Like most people who focus on one thing, there were a lot of people who had no idea how the front or back ends of Drupal work. This led to my new favorite quote, courtesy of Caroline Blaker who helps me run the ABQ Webgeeks group. (yeah.. I’m busy) Caroline is an Expression Engine developer and while we were talking about how when the only tool you have is a hammer, everything looks like a nail. Caroline flipped the phrase with: “When the only tool you have is a rope, everything looks like a neck”

The talk went over well. There was a great question and answer session and at the end of the night, all the WordPitchforks™ were put away. I would like to believe everyone was happy with the way I presented, but there is a good chance it was the funny cat pictures I embedded into the slides. It is the internet afterall. No one thought to record that night, which is a blessing as I’ve been told I have a face for radio, and a voice for mime.