WordPress as CMS

By Sol in Lab

I have always loved WordPress as a blog platform, but even with its “Pages” functionality, I never really saw it as a viable option for a CMS (Content Management System). When I was mulling over how to structure Archetyped.com, and do it in the least amount of time as possible, I decided to take a closer look at WordPress for use as a CMS.

In the past couple of days since installing WordPress, my opinion of WordPress as a CMS has gone back and forth. In one moment, I may feel that WordPress can in fact be used as a CMS (and a darn good one at that). Then, in the next, I find a deal-breaker that totally makes me question whether WordPress has it in it.

For me, compromise is not an option. If WordPress just can’t cut it as a CMS, then I’ll search for another. There are a lot of CMS’s out there, and I’m sure I could find the “perfect” one if I looked hard enough. But, what if WordPress is that perfect CMS (and it just doesn’t know it yet)?

Here are some of the things it’s got going for it:

  • Ease of use
    Wordpress is really easy to get going and adding content on. This cannot be said of many full-fledged CMS’s out there
  • Blogging Power
    As this WordPress’ main function, it is obviously one of it’s strongest. WordPress features far better built-in blogging functionality compared to many other CMS’s (many of which do not even come with any built-in blogging functionality).
  • Extensibility
    By leveraging the power of plugins and themes, it is very simple to enhance and customize WordPress’ functionality to meet (almost) any need, while at the same time not having to touch the core code. This means the same modifications can easily be made to any install of WordPress very simply.
  • Pretty URL’s (mod_rewrite)
    Down with index.php?c=654&d=87df&treehugger=hippie&yuppie=needsahug! That’s all I have to say about that.
  • RSS
    I use RSS every day, so I couldn’t imagine using a system that can’t give me RSS functionality. Oddly enough, several CMS’s do not include this functionality (while others make it difficult to implement).

That’s some tasty stuff. However, WordPress also has some not-so-CMS-loving features:

  • No Sections
    Organizing dynamic content by sections is a major need for anyone wanting to setup a content-based site (me). Unfortunately, WordPress does not provide this functionality, while pretty much any self-respecting (and even those self-deprecating) CMS’s do.
  • Funky Permalink Structure
    This is actually one of the most important features to me as structure is huge when it comes to usability and accessibility. In order for WordPress to work properly as a CMS, I would need the structure to reflect “domain.com/section/item/” (such as: archetyped.com/software/structure) or in other cases, “domain.com/section/category/” (such as: archetyped.com/resources/articles). Of course, a structure like this presents some issues for Apache’s rewrite rules (as it would be hard to tell whether the request is for a category or a specific content item), so while it would be incredibly easy to get this structure with a manually created site, it may be a bit more difficult with a dynamically created one. Currently, I have my permalinks to posts to display as “domain.com/category-name/post-title”, which is great and works just fine for me. However, to display a listing of items in a specific category, the url looks something like “domain.com/category/category_name/”. This totally messes up the site’s structure for the user as there is no logical connection between “domain.com/category-name/post-title” and “domain.com/category/category-name/”. If the user wanted to go up one level (i.e. get a list of all posts in the category of the current post, he might think to type in “domain.com/category-name”, which would result in a 404 error. In order for WordPress to work as a CMS for me, this would need to be resolved (I’m working on it)
    [Note: I’m aware of the hacks to get “domain.com/category-name” to work properly, but it creates several more issues that workarounds would need to be found for. Also, my goal is to see what is possible without touching the core WordPress code]

I know it’s not a long list of issues, but IMHO, they are deal-killers. If they cannot be resolved, then WordPress simply will not be a viable option as a CMS for me.

This is mostly an experiment to see what kind of potential WordPress has to extend beyond its blogging roots. I’ll give it a week 🙂