WordPress contains almost all the features you need to get it going as a CMS out of the box. However, you’ll find that there are a few things missing that make up the final pieces of the puzzle. Here’s an overview of the five most useful plugins I’ve found, and the part they play in making WordPress a butt-kicking CMS.
Plugin 1: Filosofo Home-Page Control
The first thing that stumps most people when trying to use WordPress as a CMS is how to stop blog posts showing up as the home page. If you’re going to use WordPress to create a typical website, it’s unlikely that you’ll want blog posts as the first thing people see.
This is where Filosofo’s “Home-Page Control” plugin comes in handy. This plugin lets you specify any WordPress page to use as your home page. You can then bump all blogging components into a sub folder such as “my-site.com/blog”. The beauty of this plugin is you can select any of your WordPress pages to set as your home page, without having to fumble with a “home.php” file in your theme directory. Everything can be handled through the WordPress admin interface. Perfect.
Plugin 2: Fold Page List
Most simple blogs tend not to have a complex hierarchy of paged content. Full blown websites however, generally do. Most websites rely upon a well thought out navigation system that makes it very clear which section and page the user is currently in.
WordPress has a built in function called “wp_list_pages” that will generate a nice nested list of all of your pages, which you can then style with some CSS. Hey presto, there’s your navigation. Only trouble is, once you get into pages more than one level deep, you start encountering problems.
Say for instance you use a tabbed navigation system on your website. Even if you are three levels deep, you still want the top level tab to be highlighted. WordPress’ “wp_list_pages” function will set a CSS class on the list item for the current page you are viewing. Great, that page can be highlighted no problem, but what about all the page’s ancestors right up to the first level tab? No go. They’re left out in the cold with no CSS class in sight. Here’s where the “Fold Page List” plugin comes into play.
By using the fold page plugin’s provided function instead of WordPress’ “wp_list_pages” you can get around this problem. Even if you are three page levels deep you can be sure that the page’s ancestors will always have a CSS class applied for you to highlight them accordingly. Very handy indeed, and it even uses the same parameters as “wp_list_pages”.
Plugin 3: Search Everything
When you’re using WordPress for a simple blog, you really only want people to be able to search your blog posts to find the information they want. Your static pages might only consist of a simple about page, or an archives page, and who wants to search those?
Things are a little different when you’re using WordPress as a CMS. Generally speaking, you’ll probably want pages to be the first thing that WordPress searches. If you’ve got a site with hundreds of static pages, having a search tool that can scan these pages will become a very handy tool in your site’s belt.
Out of the box, WordPress will only search your blog posts. No good for a CMS. Thankfully there is the “search everything” plugin from Dan Cameron. Drop in this plugin and you’ll be given a set of admin options that lets you customize what type of content WordPress will scan for matching results. You have a whole host of options including pages and even posted comments. Combine this plugin with Media Projekt’s search hilite plugin, and you’ll have the search tool you always dreamed of.
Plugin 4: Role Manager
WordPress comes bundled with five generic user roles, each one allowing greater control of the site through the administration interface. Trouble is, these roles are very “blog-centric” and focus mainly on the ability to create and publish blog posts.
If you’re using WordPress as a CMS, you’re likely to want the ability to finely tune what a client, or other administrators can and can’t do. For instance, you might want someone to be able to edit and update pages, but not add or delete them. Or, someone could be in charge of keeping external links up to date, so they would only get access to the WordPress link administration section. The combinations are endless.
Red Alt’s role manager provides this level of functionality in WordPress. Drop in this plugin and you’ll be creating custom roles in seconds. It comes with a very slick AJAX interface, and let’s you see all permission capabilities at a glance. This plugin takes account management to a new level.
Plugin 5: Site-map Generator
On to number five. No standard website is complete without some sort of site-map. Site-maps allow visitors to get a quick overview of all the pages in your website, as well as giving search engine robots an easy path to indexing all of your content.
The site-map generator plugin from Dagon Design will generate a full site map based on your WordPress page hierarchy. You’re presented with quite a few options through the admin interface, such as including blog posts in the hierarchy and paginating the site-map in various ways.
The beauty of a generated site-map is you can turn it on and leave it alone, safe in the knowledge that it will reflect any changes to your site’s content. A definite must-have plugin for any size website.
Try this at Home
So, there are the five plugins that I have personally found the most useful. If you are yet to use WordPress as a CMS, I would whole-heartedly say go for it! I was skeptical at first, as I only saw WordPress as a blogging tool. Once you start digging deeper, you’ll begin to realize that this is the way WordPress will be progressing.
I’ve just finished my fourth site using WordPress as a CMS, and more and more I wish I’d started sooner. Plus, the more you use it, the better you get. My site build time has rapidly decreased just from creating those four sites. Now all that’s left is to convert this site over!
Finally, I’m almost positive that in a year or so, WordPress will be considered a CMS with a blogging tool, rather than a blogging tool you can use as a CMS. Only time will tell I suppose, but version 2.1 seems to be moving in that direction.