A polemic by Kevinjohn Gallagher about his decision to no longer use WordPress for client sites has been doing the rounds on various tech sites for the last day or two. Initially I wasn’t going to write about it, but there’s a lengthy discussion on Hacker News about WordPress and various other CMS‘s that provoked a few thoughts.
He lists fifteen features that he says aren’t included or implemented satisfactorily in WordPress core and a comment moderation ‘straw that broke the camel’s back’. So I thought I’d go through them and suggest plugins or additional core functionality that can be used. Unfortunately it isn’t clear in some of them exactly what he’s referring to, but here goes:
- Document management – There’s the Document Revisions plugin which he mentions.
- Workflow management – Edit Flow (again, which he mentions) and Pre-Publish Reminders is good way to make sure users don’t forget, for example, to make sure they tag posts and set a thumbnail.
- Digital asset management – I’d definitely agree here that the media library could do with some love and attention from WordPress core developers. File Un-Attach is a useful little plugin that allows you to detach and attach media to multiple posts.
- Link management – Presumably he means permalink structure, something like Redirection might be suitable, as it can take regular expressions as redirect rules.
- User management – Both Members and Role Scoper allow you to create access control lists beyond the WordPress defaults.
- Caching & CDN – There’s a plethora of caching plugins, I use W3 Total Cache on client sites (as well as my own). It’s got more settings than an aeroplane dashboard, but the most suitable ones are set by default and it integrates nicely with most popular CDNs.
- WYSIWYG editing – TinyMCE already does this in core and you can extend it with an editor stylesheet so it matches your theme exactly.
- Single Sign-on – I’ve not implemented something like this before, but OneLogin SAML seems to add the functionality.
- Multi-side Admin – By this I presume he means accessing admin functions from the front-end of the site, this is possible to do with any theme or a plugin like Gravity Forms.
- Publishing options – It’s not clear what he doesn’t like about the current publishing options or what additional ones he’d like, so I can’t really suggest anything here.
- Access Management – Again, either Members or Role Scoper should do the trick.
- Application – Using a CMS as foundation for a web app probably isn’t the best idea in any case, but it’s by no means impossible with WordPress.
- Multilingual – WordPress is available in over 70 languages and dialects and there’s an article in the codex full of solutions to make the front end available in multiple languages too.
- n-to-n content sharing – Something that might be solved with networked storage or a CDN, rather than in core or with a plugin.
- Reporting – Not sure what he means here, so I can’t suggest anything.
- Comment Moderation – the straw that broke the camels back. Once more you can use Members or Role Scoper to add the
moderate_commentscapability to any user or role.
There are two questions I’d ask in response to Gallagher, firstly should all of this functionality really be in core? and secondly what alternative to WordPress will he be using?
I’d argue that a lot of this functionality shouldn’t be in core and should be left to plugins instead. There isn’t a CMS out there that I can think of that offers all the functionality he lists out of the box or with decent plugins.
The other big bone of contention he has is with the WordPress update process, for both core and plugins. Which to most WordPress users will sound absurd as it’s one of the best things about WordPress compared to other CMSs, which often have no update notification let alone WordPress’ one click update process.
Major WordPress core releases are every four months, usually with a handful of betas and a couple of release candidates before. So there’s plenty of lead time to fix any plugins or themes that are incompatible or need to update depreciated functions. An intresting aside – depreciated functions aren’t actually removed, so a theme using template tags from 1.5 will still work in the latest version, albeit perhaps not exactly as expected.
In the Hacker News discussion a few people have made comparisons of WordPress with other CMSs with regards it being their junior in terms of function and flexibility. Even though I’ve developed WordPress sites for a few years now, I still feel as though I’m only touching the surface of what it can do. When clients have come to me with what they want their site to do, I’ve never had to say to myself, or them, this just isn’t possible with WordPress.
That’s not just because I’m making simple blogs for people either. The three most recent sites I’ve built for people have been a portfolio site for a photojournalist that uses custom post types for galleries, a fully functional eCommerce store using the WooCommerce plugin and a rich news site that sits perfectly on top of WordPress’ built in post, category and tag structure.
WordPress is the most popular CMS on the internet. Once you’ve used it and tinkered around with themes and plugins it’s easy to see why. A clean, intuitive interface for users; logical and well documented template tags and almost limitless extendability with plugins.
Anyone reading Gallagher’s post, a comparison of WordPress against another flavour of the week CMS or ‘this CMS I coded myself over the weekend in an obscure programming language and is way better than anything else – ever’ should have a take a good long look at WordPress and they’ll probably realise: we can do this with WordPress.