Migrating to WordPress

A recap of my trials and tribulations, troubles with tribbles?, moving reven.co.nz to a WordPress site.

I decided to switch from a custom written website based on CodeIgniter, which I love and is my favourite PHP framework, to a full CMS.  I was having too much trouble trying to get my custom blog API working with all the editing software that was out there.

First I had issues with MarsEdit, and I basically had to trick it into thinking my site was a WordPress site, which it wasn’t at the time.  Then I had issues with a Blog writer iPad app, it just wouldn’t work.  For the life of me I just kept having issues with Code blocks in the my blog posts, formatting was forever screwed, and I was writing too much backend code to fix the editor issues.

So I began looking for a PHP CMS, Content Management Systems.

  1. Joomla
    I had used Joomla a few years ago for reven.co.nz and I was happy with it, integrated forums, easy editing, and back then version 1.5 was in beta, I think this was back in 2006/2007.  So I was excited to see what they had been doing in the past few years.  And to my surprise, all they seem to have done was release 1.5, and stopped.  Sure it might be really good, but it hasn’t progressed, this gave me the impression it lost its driving force, and future updates would be slow and far between.
  2. WordPress
    I wasn’t keen on WordPress at first, I wasn’t impressed with the file system, too many files in the root folder, very little folder structuring going on.  And the default theme is ugly.  Also I found it hard to think of it as a CMS, it’s always been a Blog, so I played with it a little and moved on.
  3. Drupal
    Now I was impressed with Drupal, it was a mature product, at version 6 with 7 coming along nicely.  Nice admin interface and slick features.  I spent a few weeks researching this and trying it out.  But version 6 was using an old version of jQuery and I didn’t want to use alpha software, most plugins didn’t work with it.  I was really interesting in the multisite feature, where you can run many sites off the one install of Drupal, but this wasn’t ready for real use.  Too many issues to actual sell this onto clients.  I do have custom CMS solution that is a multisite CMS, where all the sites run from the one install/database, and each site is basically a theme.  I wanted that. Sadly Drupal multisite wasn’t this.
  4. ExpressionEngine
    This looked slick, written in CodeIgniter, great interface, regular updates, multisite which looked like it provided exactly what I wanted.  But the price, boy the price is expensive.  If I switched too this I would have to raise my rates to included licenses for ExpressionEngine.  As I wanted to learn one CMS, learn it really well, and be able to sell sites built on that so my clients could have an affordable and fully functional CMS.

I thought all was lost, I couldn’t find anything I wanted, and was about to give up.  But I decided to give WordPress another shot, really try it out as a CMS.

I had some really strict requirements

  1. It had to be fast
    I wanted all my performance tweaks I had learnt over the years to be available.  That meant combing and minify the JavaScript and CSS easily.  I couldn’t find any plugin that did this how I liked it, lots of security issues with the plugins available.  So I wrote a plugin, called it Jay Garrick (the original Flash, as my plugin made your website fast :) ).  And boom goes the dynamite, all my CSS and JavaScript files combined and minified on the fly into 2 files.
  2. Look the same as CodeIgniter Site
    I wanted it to look the same as my current site, I love my site design, with the animated backgrounds, day/sunset/sunrise/night themes.  The animated “me” on the services page.  So I had to write a WordPress theme.  Made the theme HTML5, still needs a few improvements here, added Paul Irish’s class trick to my head

    <!--[if lt IE 7 ]> <html class="ie ie6 lte9 lte8 lte7 no-js"> <![endif]-->
    <!--[if IE 7 ]>    <html class="ie ie7 lte9 lte8 lte7 no-js"> <![endif]-->
    <!--[if IE 8 ]>    <html class="ie ie8 lte9 lte8 no-js"> <![endif]-->
    <!--[if IE 9 ]>    <html class="ie ie9 lte9 no-js"> <![endif]-->
    <!--[if (gt IE 9)|!(IE)]><!--><html class="no-js"><!--<![endif]-->
    

    Add some fancy CSS3 effects, make sure you checkout my site in IE9, Chrome, Safari or Firefox.

  3. Downloads and Demos for Posts
    I wanted to easily attach downloads and demos to posts.  I often blog about code and jQuery plugins.  So I wanted to attach demo that you could launch and downloads for you too…. err download.  The downloads are done, but I’m still working on the demos, but I’m confident I can achieve this, just researching the best way to do it.  Any tips would be welcomed
  4. SEOed
    I needed to make sure that the new site still had full Search Engine Optimization.  I spent a long time getting my on site SEO rank up to the 98th percentile and I didn’t want  to lose this.  As today, October 17th 2010, I have it in the 90th percentile.  So I need to do some more work, but it’s achievable.
  5. jQuery
    I use a lot of jQuery, and I really don’t want to have to use an old version of it.  I must use the latest, and it must be served from a CDN.  On Drupal I couldn’t get it from a CDN.  CDNs, Content Delivery Networks, have huge site performance impact and take the hosting of commonly used libraries, like jQuery, off your site and onto theirs.  For example Google and Microsoft both host jQuery.  By using a CDN you can deliver the resource from a server usually much closer to the user than your host, and they are likely to have already downloaded the resource from a different website.  So they won’t have to download it again.

After running WordPress through its paces, I found it met all my goals.  It’s a mature and open platform, with commercial backing, and get’s regular updates.  My only grip is the plugins, searching for them can be difficult and its hard to sort out the good ones from the crap.  But all and all I’m happy with it, and expect to see some plugins appearing on this blog.

This entry was posted in CMS, PHP, Web, WordPress and tagged , , , . Bookmark the permalink.

Comments are closed.