WordPress has come a long way since its launch as a blogging platform in 2003. Today it can be used as a full content management system, suitable for almost any type of website you can think of. It’s used by such big names as eBay, CNN, and WIRED, and best of all, it’s completely FREE!
In this article, I look at some of the features you may not even be aware of, that make WordPress a great choice for building a site with a content management system, so that you or your clients can easily edit the site content, without having to delve into the HTML.
I’ll also look at some of its limitations, so you’ll be able to judge whether WordPress is the right tool for your site, or whether an alternative platform may be a better choice.
This is one of my favourite features, introduced with WordPress 3.0, which gives you complete control over all of your navigation menus, with a really neat drag and drop interface.
Prior to version 3.0, your only option was to use a WordPress template tag which listed ALL of your pages (unless you explicitly excluded certain pages).
This wasn’t a very practical solution, as you often have pages which you don’t want to include in your navigation, and having to manually list all the pages you want to exclude is very laborious.
The new custom menus also let you combine pages, categories, and custom (external) links into a single menu, and you can then add the menu into your theme template, or as a widget (more on widgets later).
Read more about WordPress Custom Menus
Custom Post Types
WordPress has always (or as long as I’ve been using it) provided the ability to specify different page templates for different types of content. This works well, but it’s not very intuitive for a WordPress editor who wants to create an ‘event’ page, and has to add a page, then select ‘Event page’ from the template dropdown. For WordPress newbies this can be a difficult concept to grasp.
Custom post types (also introduced in WordPress 3.0) allow you to provide different types of posts in the admin panel, so that instead of adding a page and applying the ‘Event page’ template to it, the editor can simply create a new Event directly from the admin menu.
As well as being able to create alternative page templates for these new post types, you can also customise the post editor for each one, so that your client only sees what they need to see.
So, for example, in a ‘testimonial’ post, the post editor will only display fields for the testimonial itself, the testimonial author, and maybe an optional link to their site. All the other options that are usually displayed in the post editor for posts and pages can be removed.
This level of customisation can get quite complex. For more information read about Custom Post Types in the WordPress Codex.
Roles and Capabilities
Roles and Capabilities determine what certain users can and cannot do within a WordPress site. There are pre-defined Roles in WordPress, such as ‘administrator’ and ‘editor’, with different levels of capability, and you can also define new Roles, giving you greater control over what a client can access within a site.
This is great for preventing clients from editing things which could potentially break the site.
For example, you may need your client to have an administrator capability, such as being able to edit custom menus, but you don’t want them to be able to access the appearance editor.
You can create a new Role, with the specified capabilities, and assign your client to this Role so that they can access the menus without being able to take down the whole site.
Creating Roles requires a bit of custom coding, for more information, read about Roles and Capabilities in the WordPress codex.
While WordPress is a great platform in its own right, there will come a time when you find something that it just can’t do by itself. That’s where plugins come in.
The WordPress community has thousands of clever developers creating handy tools which can be added on to your WordPress site, extending its functionality, and making it possible to do almost anything you can think of.
Plugins are also incredibly easy to install with a single click, and you’ll be notified when there’s a new version of your plugins, and asked if you want to update them (also a one-click job).
There are thousands of plugins available, but some that I use on a regular basis include:
- Google Analytics for WordPress – a simple way to set up analytics on your WP site.
- Headspace 2 – Make your site SEO friendly (more on this later)
- NextGen Gallery – a really simple way to create and manage image galleries
- Contact Form 7 – Fully customisable contact forms
Read more about Plugins in the WordPress Codex
Widgets in WordPress allow you (or your client) to easily rearrange certain elements on your site, using a drag and drop interface.
This is most commonly used in a blog sidebar, to show things like a list of recent posts, recent comments, a search bar and a calendar of posts. But you’re not restricted to the sidebar, and with a bit of customisation you can make any area of your site ‘widget-ready’.
WordPress comes with a few widgets pre-installed, but again, there are thousands of widgets available and they’re installed just like plugins.
Read more about WordPress widgets in the WordPress Codex
Search Engine Optimisation is a huge industry at the moment, with companies paying thousands to ‘SEO experts’ for the promise of high search engine rankings.
Out of the box, WordPress is set up to be search engine friendly, using permalinks, title and meta tags based on your site’s content. So if your copywriting is good, your SEO should take care of itself.
However, you may want more control over how your site is optimised, in which case I recommend the HeadSpace 2 plugin which I mentioned earlier.
HeadSpace 2 provides an admin panel in the post editor, allowing you to specify custom titles, meta description and meta keywords for every post.
You can also set default values for different types of pages, which will be used if you don’t specify custom text.
Despite all the great features mentioned above, WordPress is not perfect. There are certain areas where WordPress under-delivers, and if these things are really important to you, then you may want to consider an alternative solution.
No Internal Linking
At the time of writing, there is no easy way to link from one post to another within your site (using the post editor). To me, this is an important feature which should have been implemeted a long time ago.
Fortunately, as with most shortcomings, there is a plugin to solve the problem. RB Internal Links allows you to select any text in your post and link it to any other post or page within your site. I install this plugin as standard on most clients’ sites.
Reliance on Third-party Plugins
There’s always a danger when relying on plugins written by third parties, that they may not continue to support the plugin, and then when it breaks after a WordPress upgrade, there is nobody to fix it for you. So if you have the technical ability, it’s always best to write your own plugins.
Not technically a limitation, since WordPress was never designed as an eCommerce platform. You can integrate certain eCommerce solutions with WordPress, such as FoxyCart, as explained by Chris Coyier, but for large-scale online stores, I’d probably go with a dedicated eCommerce platform such as Magento or Shopify.
Above all, the main reason why we use WordPress as our CMS of choice, is that it’s easy to teach clients how to use it. If someone asks you to build them a site using a CMS, they don’t want to have to spend weeks learning how to add pages, upload images and edit their content.
With WordPress, it’s almost self-explanatory, and if you utilise some of the features I mentioned above, you can make WordPress into a fool-proof content management system.
I’d love to hear about your experiences working with WordPress, and if you’ve come up with any more ingenious ways to make it easier for clients to use, leave a comment below.