The WordPress logo, a W in a circle over the text WordPress using small caps

Moving to WordPress

After running Drupal for 3 years, then Joomla for another 3 years, I have now moved my website to WordPress — after almost picking Drupal again. So here’s the obligatory write-up of my experiences, why I switched and where I think the problems lie in those three CMSs.


In August 2006, after trying about a dozen CMSs, I went live with my website built on Drupal. It promised the greatest flexibility and had a very active community with countless free plugins.

The Drupal logo, a blue water drop with a face, the eyes forming an infinity sign

I was happy with that, for a time. Drupal enabled me to define my own category trees, article types and mix WYSIWYG editors with filters for highlighting code, disarming HTML code in posts and letting users write comments.

But it was not convenient – not by a long shot. Drupal lets you use and abuse any feature it provides in any imaginable way. For example, there is no standard "categories" concept in Drupal that plugins could be built against. You are free to define any number or "taxonomies", like topics, places, genres as lists, tag clouds or hierarchies – and even the "taxonomies" concept comes from a plugin.

So any plugin had to be freely configurable to somehow fit into this mess. In the endeavor to build a consistent website, you would often switch plugins countless times and then wrestle the lot of them this way and that way to hopefully end up with the functionality you wanted.

The problem with that was the amount of customization it required from me just to get a standard website running. There are some universal concepts most internet users will recognize, such as forums, categories, tags, static pages, comments, etc. – these could have a clearly defined API in the core CMS so plugin authors can target these. But to get a forum in Drupal, for example, you’d have to create an article type for forum posts, use the comments module for replies and style that article type so it and its comments look like your favorite forum software. In theory.

It didn’t help that Drupal releases early and often – and with breaking changes, causing plugins to be abandoned left and right and themes to stop working and everything to change all the time. I soon grew tired of that.


Back then, I was also running my blog in a separate WordPress site. I had neglected updating WordPress and at the end of 2009, a spam bot had used some WordPress exploit to hide all kinds of disgusting stuff in my pages. When I finally noticed, I had payed to host the spammer’s crap and to further his reputation for about 6 weeks. In return, it saw fit to delete large parts of my posts because this particular spam bot was unable to distinguish between its own <-- hidden spam starts here --> markings and commented sections of HTML (something I did very often while arranging and reworking posts).

So to make it short, I was a bit pissed and decided to no longer blog using WordPress. In the end, I combined both my Drupal website and what was left of my WordPress blog to Joomla.

The Joomla logo, four stylized people in different colors holding hands, seen from above

Joomla had a history of remaining stable – they fixed bugs and added smaller things, but they seemed to avoid breaking changes and major new releases like the plague. On one side, it was a fixed, slightly outdated system – on the other side you could expect all of the plugins to keep working and your theme to still display the same a year or two down the road.

Joomla is a bit quirky in many places – for example it has a fixed two-level category tree, the two levels being named "sections" and "categories", the terms used making no sense at all. Sections are page types – so you could have a "pages" section for your static pages, and a "blog" section for your blog posts. Plugins are called "extensions" the term "plugin" is used for functionality added to special extension points by "extensions" and panels you can put on a page are given the name "modules". There should be a Joomla <-> English dictionary.

But at least it was not a moving target and I could just keep a website up and running. Or so I thought. As my experience with the spam bot take-over shows, CMS need to be kept updated all the time. And in updating the plugins (sorry, I mean "extensions") I used to provide downloads and comments and stuff, things began to break again. You see, Joomla does not have a built-in comments system. There are maybe 3 okay ones for free and another 3 good ones for money.

There also has been a bit of a bloat competition among many plugins "extensions" to add the most features. So a Joomla download system will not sit quietly in its corner, storing your files and counting downloads, it will provide its own content type with its own page hierarchy and custom detail views and so on.


Still not being happy, I set up a Drupal page again in private and began to migrate my posts one by one in the evenings. Drupal had jumped 3 versions and I hoped it was maturing. I had picked the latest Drupal version: 7 – it had just been released a few weeks earlier, so many plugins were not working with the new version yet.

6 months later, all of the plugins I wanted to use had reached a stable release for Drupal 7 and the improved administration interface was turning work into a breeze. Except, all that is a lie. Nothing had changed. Even popular plugins were still in the “alpha – do not use” or “I’m going to update this real soon now” state. By the time I’m writing this, another 6 months have passed. And nothing has changed, still.

The WordPress logo, a W in a circle over the text WordPress using small caps

So in the end, I decided to give WordPress another try. I’m not sure what motivated me to do this, maybe it was just curiosity. Over the years, I began to favor a simple approach more and more. The CMS should define the basic things. We all know what tags and categories and comments are and these universal concepts should be part of the CMS core so plugins can build against a known basis (just look at Joomla’s sitemap plugins – the poor suckers can’t even weight pages based on comments because there’s no standardized comments system).

The new WordPress does that pretty good. And it’s convenient. Very convenient.

There still are some friction points. For example, WordPress’ WYSIWYG editor is hell-bent on destroying your code. It will replace some things it doesn’t like, remove a tag that it considers unimportant here and there, and then plunge the whole HTML code into one big endless line. I had to use a plugin and completely disable WYSIWYG to be able to write without going insane. After manually migrating 75+ pages, it now almost feels as if WordPress was meant to be used this way.

But that’s really all I have to complain about. WordPress core defines a lot of things, so theme and plugin authors have targets to connect to. And that shows. Free themes offer a ton of cool features that would take months of tweaking and tailoring in other systems. So far I’ve been able to find plugins hitting just the right spot (though the occasional download system bloatware which added half a dozen tables to my database was also present)


As of now, I’m running this set of plugins:

  • WPAUTOP – Old, but working. Prevents WordPress from destroying my formatting. The WYSIWYG editor has its own brand of content destruction – even if you never switch to the ‘Visual’ tab – so it’ll only work out with WYSIWYG disabled, too.
  • Download Counter – Keeps a list of downloads and gives you links that will download the file while increasing a download counter. Nothing else. Excellent.
  • Easy FancyBox – If you have an <img /> that is linked to another image, will display a JavaScript photo popup instead.
  • Exclude Pages from Navgiation – I didn’t want to design a custom menu (more maintenance work = bad), so all I was looking for was a way to create pages that don’t appear in the menu bar. This does the trick.
  • Google XML Sitemaps – Nothing against helping those search engines a little.
  • Highcharts for jQuery – I cloned the jqPlot charts plugin for this one and included Highcharts instead because jqPlot has an abhorrent API and breaks the DOM tree of my page.
  • NewStatPress – Counts visitors and page views for individual pages.
  • Scalable Vector Graphics – WordPress didn’t let me upload .svg files. This fixed it. Then I fixed the plugin, because it gave .svg files the MIME type "mime/type" – which was nonsense.
  • WP-GeSHi-Highlight – Performs syntax highlighting on the server side. I’m very happy to be rid of SyntaxHighlighter (I mean, come on, who’s brilliant idea was it to freeze everyone’s browser for 5 seconds when a page contains a longer code snippet and then include Flash *ewww* on top of it for clipboard functionality?).
  • WP Twitter Feeder Widget – Displays my latest tweets. There seem to be a lot of these for WordPress all doing largely the same. I’ve seen one on another page that linkifies URLs in tweets, if I find that one I’ll switch over.

6 thoughts to “Moving to WordPress”

  1. I’ve been through much the same kind of thing over the years. I’ve used Drupal a couple of times, Joomla very briefly and a few others like CMSMS. WordPress never really felt right because I always wanted a website not just a blog.

    Seeing how far WordPress has come since the last time I used it really opened my eyes. I’m very impressed just how easy everything is to get setup, yet still have the ability to tweak the programming here and there all from within the admin panel.

    It looks like you’ve got some really interesting content. I’ll be back for more ;)

  2. Hear hear :) – I was quite skeptical about going back to WordPress at first, too, but when I saw the menu bar, static pages and panels in my new install, it dawned on me that this was that I wanted all along.

    I’ve stumbled across your “prosperity plan” when I checked those Mogre binaries out, sounds like you’re venturing into the indie business arena, too. My own half-hearted attempts haven’t gotten me anywhere yet, so this will be interesting to watch!

  3. A few years ago I had a go at running a software business with a friend developing small business software and websites. We did a lot of things wrong and failed in many ways but it was a great learning experience.

    I’ve always kinda wanted to venture in the indie game business but for a long time it’s only been a hobby. Then I got a new day job and starting learning a lot about how to develop software into a product that actually sells. I also read a lot of books on the subject and built the confidence to have another go.

    Game development is still my spare time gig but it’s much more than a hobby now. I wish you well in your adventures and I hope we can collaborate more in the future :)

  4. Hy Cygon,

    an interesting report about 3 CMS.
    (What in hell – there are so many CMS in the world. It would be a huge challenge to figure out the the usable ones, related to the current state.)

    Were some of your posts realy destroyed?
    Or did you have a backup somewhere to have a chance to recover it?

    Cygon, you write very often and much. But your blog posts seems to have a high quality.
    I will look into it more deeply.

    Also I got the notice of Glue (Zarifus) that you posted something about Ogre/Mogre in the past. I will search for it.
    By the way – your blog seems to be full of Mogre users (o:


  5. Yep, I lost a lot of posts for good.

    I had a backup system in place which created daily backups, always keeping the 14 most recent backups around because my rented server only has 2 GB worth of FTP backup space. When I noticed the spam hidden in my pages, the damage was already present in every backup.

    All that is left from back then are a few posts I managed to recover via :)

  6. I had to provide a “rationale” for moving a client away from a totally bloated Drupal site to WordPress. It was easy.

    I told the client that his Drupal site had 20 times the files as the same site running WordPress would have. Given that formula number I then told the client that it would take me 20 times longer to locate and modify any functions or variables with Drupal, therefore the client was going to pay 20 times more for my maintenance work on Drupal than WordPress.

Leave a Reply

Your email address will not be published. Required fields are marked *

Please copy the string BWggBh to the field below:

This site uses Akismet to reduce spam. Learn how your comment data is processed.