Using WordPress as a CMS

wordpressasacms

A couple of years ago if I’d said WordPress would make a great CMS, you’d have probably thought I was totally mad! These day however, when you need a simple CMS WordPress is a brilliant option. In this post I’m going to show you how to make your wordpress CMS even better with some simple bits of code and some not so simple plugins.

Customising the navbar

First thing we can do is display pages on the navbar instead of categories. We can do that with the following code, creating an ordered list:

But you won’t always want to display all your pages, so you can be picky and exclude certain pages by finding their IDs:

[xml]
<ul>
<?php wp_list_pages(‘exclude=pageid,otherpageid’ ); ?></ul>
[/xml]

Or maybe you’d like to display pages based on date?

[xml]
<ul>
<?php wp_list_pages(‘sort_column=post_date&show_date=created’); ?></ul>
[/xml]

Source – WP Codex

Flutter

Flutter is a WordPress plugin that will transform your site into a fully fledged CMS. What does it do? Check out the flutter release page for the complete low-down, but in a nutshell it allows editing of posts without leaving the post page,
gives you ‘custom write panels’ that give you more options besides post and page. It also has phpthumb built in for ‘powerful image manipulation’.There are a couple of videos running through the features on the plugin’s microsite, so check it out!

Manage what users can/can’t do

Something that is essential in any CMS is the ability to manage users. Whilst WordPress has basic user management built in, you can extend it further with the Role Manager plugin. What this allows you to do is precisely manage your users: the options are huge! The screen below is from one of my sites, Nometet.com, where I use the plugin.

rolemanager

Using page templates

Page templates allow you use a custom template in pages, a really useful feature – you can integrate Google Custom Search for example. How do you create a page template? Open up your editor (ie Notepad) and add the following code:

[php]
<?php
/*Template Name: whatever you want your template name to be */
?>[/php]

With that at the top of the page, you can add whatever code you like below.

To use your new page template, upload it to your theme directory and go to the page editor, and under attributes find your template. Done.

Display a page as homepage

Another essential CMS feature is the ability to display static pages as the homepage. Once you’ve created your page, go to ‘Reading’, under the Settings tab. Select the option ‘A static page’ and then select the page you want from the drop-down menu. Done.

Permalinks

Something that you should do anyway for SEO’s sake, but is also a nice CMS-like feature is change your permalinks. Again under settings, select ‘Permalinks’. The WP Codex has a list of all the options you’ve got, but I’d go with /%category%/%postname%/ or /%postname%/.

And finally

In this post I hope I’ve given you a couple of pointers and ideas to make WordPress your CMS of choice, but there is a lot more you can do besides! Stay tuned for a WordPress-as-a-CMS theme coming soon!

Additional reading

Chris Coyier’s screencast on the topic, for CSS Tricks.

Creating page templates – WP Recipes

WP Codex – Pages


23 Responses

Comments

  • Nice post! You've got some great tips here. I've set up blogs in WordPress and have been tossing around (but was still a little uncertain about) using it as a CMS for some of my website clients. Main question: If a client is going to have a WP blog as well as a site, would you suggest setting up their blog separately (and link to it) or incorporate it into their main WP website? If the later, how do you suggest managing this all within one WP site?

  • choen says:

    nice post… thanks..

  • Interesting post, thanks.

    I really need to get my head around the role management in WP. I have an art group site that runs on Textpattern and I'd love to move over to WP and allow members to take care of their own pages.

  • goofydg1 says:

    I use WordPress as a CMS for many of my clients. Works great. With the proper set of plugins you should have no problem.

  • Tim says:

    Thanks for this post. I love using WordPress as a CMS. I haven't had much luck with Role Manager though, didn't seem to work right.

  • Hirvesh says:

    Loved your post. Keep up writing those articles..they are great.

    You might want to check my own WordPress articles:

    http://codefusionlab.co.cc/the-9-most-useful-word

  • i think is very useful information . thank you

  • GreyGoose says:

    WordPress is an excellent blog builder, but if you want to create a website for your clients there’s an even better free tool called ModX – do all your design in your favourite web-editing tool, no php knowledge required, no cutting up the page and saving it as something else, just paste your HTML into the new template box within MOdX, with the right content commands etc, as per the supplied sample, upload your CSS and images and job done. Also in it’s favour, the default admin pages look like they’re aimed at adults not children.

  • Jim Pohl says:

    Hi Alex,

    I’ve written a standard text in HTML. I’m looking to present it in a CMS. I haven’t
    seen a book done that way. Might you know of one (or some).

    Please look at my site. There is a lot of work there. The work needs to be “indices-sortable.”
    Categories, I guess. Anyway I need advice and help.

    Thanks, Jim Pohl

  • Steve says:

    Hi,
    Great post. I am completely new to WP – where do I put the code for the navbar?
    Thanks,
    S

  • vadepaysa says:

    Honestly, don’t do it.

    DO NOT USE wordpress as a CMS. WordPress is excellent blogging engine and that’s about it.

    I am writing this out of experience. I too was super excited about using WP as a CMS, because it was working so well on my blog. ALl the plugins, themes, awesome!

    BUT, I did a terrible mistake when I decided to use WP as a CMS for a huge non-profit org.

    I bravely installed WP thinking I will hack in anything I want, but,
    they had such dynamic requirements to the page content and such complicated user access rules that every change they wanted meant hacking a plugin or tweaking php of my theme which took hours together.

    This drove me INSANE!

    And to my rescue, came my age old friend, Drupal.

    Drupal is a CMS
    WP IS NOT

    WP is an amazing blog platform.

    Please use caution, please learn from my painful experiences.

Pingbacks