August 27th, 2006

5 Reasons Not to Use WordPress As a CMS

Part of the Using WordPress as CMS SeriesI wanted to get this out as fast as I could given that my post on 5 Reasons to Use WordPress (WP) as a CMS has been published. Why? Because I’d rather not get people too hyped up over WP’s non-blog content management system (CMS) abilities.

I’m not saying WP can’t work great as a more “web site-ish” CMS (I’m devoting a whole series on Using WP as a CMS after all!), nor am I trying to be a wet blanket, but there are a few things you really should consider before taking the plunge:

  • You’re Pushing It
    WordPress was built to be a blog platform first, everything else second. So, everytime you push it to do something else, remember that you’re making it do something it wasn’t meant to do. You might very well go too far (think 20+ database queries on top of those WP normally calls, and I’m sure some of you rack in even higher numbers), and take a big performance hit. Or you just might break it trying to build a pseudo-Drupal out of WP by modifying core code… Ludicrous, but entirely possible.

  • (Overly) Single Blog-centric
    As said earlier, WP was meant to power blogs, so a lot of its features are optimised towards it. It’s hard to move away from a reverse chronological order post listing - meaning no alphabetical order, author-based order, etc., unless you use undocumented posts_* filters (and still have to hack around a bit more), or query your database to draw all your posts and sort them via PHP (it’s a pain for you and your server, trust me, especially since a lot of existing template tags, e.g. the_permalink(), may break in the process).

    In fact, each WP install is only meant to power one blog. No multiple blogs under one admin panel unless you use hackish plugins (see No. 6), which are mostly ugly to implement (no offense intended to the plugin creators!). Even then (or if you use WordPress Mu), it’s highly difficult to draw data from your other blogs, e.g. draw list of authors with their posts from another blog. And your Manage Posts panel doesn’t allow for listings by author for the multi-blog sort of administration community sites require - unless someone updates the Enhanced View plugin for WP2.

  • (Overly) Simple Post/Page/User Management
    WP’s user-friendly admin panel (which stems in part from its simplicity), while great for running a single blog, would be insufficient for complex tasks, e.g. community sites, education portals, etc. For starters, by default, there’s no mass editing of categories (plugin available), custom fields, or comment enabling/disabling on your posts. Edit: To clarify, per-post custom fields and comment enabling/disabling are available, it is the batch editing of them that is not available.

    It’s a little better for pages given the Mass Edit Pages plugin, but still not enough. I’m sure you’ve noticed how hard it is to deal with your pages once they number in the hundreds… (Pages+ plugin helps, but not sure if WP2 version available). The same things apply with user management. And to my knowledge, WP also lacks a common user authentication system, e.g. LDAP, which I think is going to be pretty difficult to implement without editing some core code. Edit: Someone slap me. Completely my mistake here. There are already LDAP plugins (an updated version) available - though I can’t seem to find a WP2 version.

  • Single and Simple Category Tree
    You only have one category/taxonomy tree unlike more community-based CMSes like Drupal. This seems minor in comparison with the previous three, but it does mean that you can’t have one category tree (called a vocabulary in Drupal) for your news posts and another for your blog posts - each under their own permalink structure. You can simulate multiple category trees by using sub-categories, but it will still lack manageability and flexibility.

    Moreover, all you have is a simple category tree (albeit with nesting available) - without associations between categories on different trees, etc. No related categories, synonyms, etc. Edit: As Matt Mullenweg notes, it’s possible to simulate a lot of associations via simple queries - though I’m sticking with my original analysis that WP’s taxonomy system wasn’t meant for (very) heavy lifting.

  • (Relatively) Rigid Permalink Structure
    Changing your permalink structure in WP normally involves only the general URL structure of your posts, e.g. whether it’s /year/month/date/ or just /postname/, and changing the prefix of your categories. So far, there’s no simple way to change the permalink structure of a single post or page, or set your categories to run without any prefix! You might have noticed that categories can’t go under yourblog.com/category-name/ because it could conflict with a page under yourblog.com/page-name/. There is a hackish way (see comments unde post) of doing it, but it’s not dependable - and should be used as an indicator of WP’s rigid permalink structure. Edit: Edited to add emphasis on “no simple way”, rather than just “no way” since if you’re persistent enough, you can always tinker with wp_rewrite.

All this might look a bit harsh considering how good WP already is, but if you’re thinking of using WP for very specific or very complex tasks, you’ll have to weigh it against more suitable CMSes - sooner or later.

And truthfully, I’m still sure I’ve missed a couple of points (at least), but try as I might, this is all I could come up with. Or… it could just be that WordPress has everything else built right for our “tweak-ish” desires.

Update: Rex points out that WP also lacks robust workflow management features - though he’s also right that such features are lacking in other open source CMSes as well.

Update 2: Qualified many points due to uncertainties /mistakes pointed out by Matt.

If you found this post useful, keep updated with future posts by subscribing to blogHelper (for free) through RSS or email.

Remember to share this post as well (if you liked it, of course): These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • Fark
  • Furl
  • Ma.gnolia
  • NewsVine
  • Reddit
  • YahooMyWeb

132 Comments

Leave a Reply