Using WordPress as a custom CMS

I recently had a crash course in WordPress when I had to build a very custom website from scratch in two weeks from start to finish. It needed to be WordPress because this site will contain a blog that will be handed off to a third party to maintain, and WordPress is arguably the industry standards for blogging software. I wasn’t overly familiar with WordPress, I’d setup a blog or two in my time, but never anything as complex as building a custom theme or plugin. But I basically knew everything I needed to do was possible, I’d read up on being able to create custom themes and plugins and I felt quite confident that I could get done everything I needed to. What I didn’t know really was how I was going to do it, or how it was going to run as a CMS once launched. In the end I was surprised at how easy some things were to implement, and frustrated at the lack of what I would consider common tools.

What I realized pretty quickly were two things:-

  1. The Administration Panel is kick-ass, it’s beautiful to look at and use and takes care of all the administration dirty work you’d have to do if you were writing from scratch.
  2. I pretty much hate the core WordPress PHP code, no disrespect to the people that dedicated so much time to it over the years, but to me and for my purposes it’s a cluster-fuck of a headache.

Look I’m not saying I’m right in this approach, but I’m pretty sure that this approach is right for me. I follow a school of thought which basically says that if you can’t figure it out in less than an hour it’s broken (something I took away from a mesmerizing Rasmus Lerdorf keynote speech at a conference many years ago). And that’s how I felt about much of the “automagic” internals of WordPress, I couldn’t figure them out for shit and I got more and more frustrated as I started to realize that I could be writing this myself from scratch, not just in a clean manner that I would obviously intimately understand, but also in less time that it is taking me to figure out the spaghetti code. I felt the same way with the plugins, that by the time I’d searched through the thousands of plugins and actually found the one that does what I need, and installed it and played around with it, only to find that it doesn’t do exactly what I need at which point I’d have to jump back into the pool of plugins looking for another suitor. Even if I did eventually find exactly what I needed, which lets face it is rarely the case, I could have already written a more suitable and stable plugin myself.

But on the other hand the administration panel WordPress has to offer is truly something of beauty. It takes care of all the user security, roles and permissions, pages and posts with vanity URLs, WYSIWYG editors, media uploads, and comment moderating, just to mention a few of it’s highlights. Basically all the rudimentary crud we have to worry about when building a CMS from scratch, shit in my line of work the admin panel is often more complex than the front-end. And not only is it solid in it’s task, so that you can feel comfortable that it’ll do its job without having to peek under the hood, but it has some sprinkles of scriptaculous and ajax so it also does it sexy. And couple that with the fact that it’s extremely easy to implement your own custom menu items and modules to the panel makes for a great application.

So I basically ended up writing my own front-end. I got familar with WordPress and found all the functions I needed to pull in the information I was generating with the admin panel. I’d like to write about how you can get setup up with all the basics you need to get up to speed with where I am at with all of this. I’ll hopefully accomplish this by exploring the following topics over a number of entries:-

  • Create your own theme
  • Custom homepage
  • Making plugins
  • Understanding pages
  • Meta tags and custom fields
  • Custom RSS file

By the way the WordPress site I built is www.thefordstory.com

2 Comments

  1. Dave wrote:

    Hi

    Your site is exactly how I would like to learn WordPress as a CMS, I am really struggling as to how I can lay out my design within WordPress :(

  2. Richie wrote:

    Dave there’s a couple more posts I did after this, see the one about creating custom themes and templates, good luck!

Leave a Reply