Over the next few weeks I'll be taking a look at WordPress as a viable option for non-blogging web sites and sharing some code snippets, tutorials and insights along the way. To kick it off, we'll start by looking at why Wordpress (WP) makes a good option, the alternatives available and the resources out there for getting started.
So WordPress has been around for over a decade, why start looking at it now? Well for starters it's an entirely different beast from the system it was 10 years ago. Talking to WP developers and reading articles online I've discovered the quickest way to spark a big reaction is when the asking the question "...but isn't it just for writing blogs?". WP certainly doesn't hide it's humble beginnings as a blogging platform, but these days it's an extremely powerful CMS that competes with other non-blogging CMS applications.
Let's start by taking a look at some of WordPress's strengths...
There's nothing more frustrating than trying to get to grips with a new platform or framework and not being able to find any information to help you. WordPress has two powerful weapons in it's armory to tackle this. The first is their online Codex, which is the ultimate online manual for all the ins and outs of how to use the platform. The second is it's community - powering over 20% of new active web sites in the US, WordPress has a massive online following. You can google just about any WordPress question you can imagine and if it isn't picked up by WordPress's impressive Codex, you can pretty much guarentee someone will have written a blog article about it.
Due to the number of developers using WordPress as a development platform, the number of plugins available is huge. At time of writing WordPress boasts an impressive 28,066 plugins that have been downloaded by 551,315,588 hungry WordPress users. Sliders, slide shows, online shops, payment gateway integration, live support chat, polls... the list of features you can add to your site via plugins is endless.
Unlike some other CMS platforms like Drupal, WordPress has a short learning curve. WordPress is simple enough for non-developers to use while still making significant changes to a site. But even for developers who want to get their hands dirty, adding custom code on top of the existing platform is extremely easy. With a few short tutorials you'll be up and running with your own themes, widgets and plugins in no time.
I've found this one to be a bit of a double-edged sword. WordPress has got so big that that you'd be hard-pressed to find anyone working in a marketing, content or copywrighting team that hasn't setup or worked on an installation at some point or another. As a result, it makes it a great choice for the end-user who is more likely to be familiar with what is already an incredibly easy CMS to use. The flip side of this, is that the same end-users will often see WordPress as a platform for smaller applications, and don't realise the extent to which it can be developed and built on. This makes it a hard-sell for commerical applications.
Talking of which...
There's no disputing WordPress as a leading blogging platform, but what about it being taken seriously as a full CMS?
Because of the flexibility of adding extra code on top of the out of the box version, you can pretty much make it into anything you want. With short snippets of code you can create different post and page types that allow you to harness the site's existing structure to create something very powerful, and also, very quickly.
In recent years WordPress has gained so much ground as a CMS that former depty head of the user interface team of WP took it upon himself to start the new and popular, exclusively blogging platform, Ghost.
Let's take a look at how WordPress stacks up against some of the alternatives...
For those who say WordPress isn't a serious CMS, get them to take a look at this (now somewhat dated) graphic from Smashing Magazine's post on How WordPress took the crown from Drupal and Joomla:
Source: Smashing Magazine
This data was collected in 2011, since then WordPress is now powering more sites on the Internet than any other CMS. Clearly WordPress as a whole is killing it, but what's more interesting in this chart is that even WordPress's non-blog websites accounted for a greater market share than the next two leading options combined.
Drupal's been around longer than the other two leading CMS's and also offers a large community following. Some of the features of Drupal make it an appealing choice for larger businesses. Here's some key stats to compare:
Drupal is an extremely poweful CMS that allows you to configure most of your requirements via the admin area without even having to write any code. I think this is one of Drupal's greatest strengths while simultaneously being it's greatest weakness. The back-end is so complex that you have to spend an incredibly long time learning the system and it's terminolgy, which creates a barrier to entry that has lead to a much lower adoption rate.
In my opinion Drupal doesn't have a clear focus for it's target audience; developers want to be able to easily add their own code to a web site as they're developers, not site configurators. Content managers want a simple-to-use CMS without having the hassle of complicated or convoluted settings. This is what WordPress has got spot on.
For an in-depth comparison, check out Paul Underwood's post on Drupal vs WordPress.
Like Drupal, Joomla started out as a full CMS, not a blogging system. How does Joomla compare?
Joomla appears to be a good option for users comfortable with a bit of a learning curve who are looking for a basic e-commerce site or portal that has a more user-friendly CMS.
Again, for a more detailed comparison check out this infographic by CMS2CMS that directs you towards the best option for you.
So we've looked at some of the shortfalls of other competing CMSs, it's only fair to put WordPress under the microscope as well...
So there are thousands of great plugins available to add-in to WordPress, but there are also some not so great ones. Each time you add a plugin to your site, you're adding a piece of code that someone else wrote, and not everyone codes to the same standards. Plugins risk being out-of-date, buggy or poorly written (which may include bloating or even worse, being insecure). Try to stick to well documented plugins with recent support and positive ratings. Remember plugins are open-source, there's nothing to stop you digging into the code yourself and making sure it meets your expectations!
The key point here is to choose your plugins wisely, consider the value of the plugin - do you really need it? Could you write it yourself? Each plugin you add increases your risk of opening up security problems and slowing down your site.
Tom Ewer from WooThemes wrote a great post about the dangers of WordPress.
WordPress is free and open-source, this is great for developers. And hackers.
Open-source software allows you to dig into the code and see what's going on behind the scenes, for hackers this is a powerful tool to find vulnerabilties. CVE details documents a range of different security flaws that have been found over the years.
I should point out that Drupal and Joomla fall prey to the same problem, but as it's more widely used, WordPress makes a more attractive target.
So we've looked at the argument that WordPress is no longer just a blogging platform, but as the only system that didn't start as a fully customisable CMS, it's roots of blogging are still clear to see. As an example, 'Posts' are often refactored by using 'post types' to create different entities such as 'products' or 'attendees'.
It's no doubt the simplicity of WordPress's original design that has utlimately led to it's long term success, and the ability to adapt the 'post' and 'page' entities, alongside easily adding new code, has ensured it hasn't been held back.
Wordpress is so ridiculously well documented that I only really need to direct you to the Codex to get you started. Online manuals can be notoriously badly structured and hard to find what you need, this certainly isn't the case for WP Codex. The site contains starter manuals, fully documented functions and excellent code samples.
Here's some of the sections I found most useful getting started:
Child themes: http://codex.wordpress.org/Child_Themes
Plugins and terminology: http://codex.wordpress.org/Plugin_API
Happy blogging! building!