I was working with a client recently on their own, customised installation of WordPress… and it was driving me potty. It was a pretty tiring day, given that our normal training covers concepts such as drafts. On their installation, you pressed save and the page (no posts on that one) would immediately appear on the navigation. Not only that, but changing a page order had no effect on the javascript based menu system they’d implemented.
Now, we’re not innocent on this either – we’ve done a few sites that get a long way from standard WordPress behaviour. But quite quickly we realised that not keeping standard messes you up in certain ways:
- Upgrades can be a nightmare as customisation may need to be re-applied – even if it’s just a theme you’ve developed.
- Training becomes difficult – especially if the people managing the content aren’t IT or WordPress experts. They won’t know what is and is not standard and documentation may therefore be confusing.
- If you need outside help, they’re going to have a learning curve before they understand what’s going on.
- Slapping a load of plugins into WordPress isn’t always the best way to extend the functionality of the system or a theme you’ve bought or downloaded. It may be better to find a different CMS or a different theme.
So as time went by, we started to keep our themes more standard in their behaviour, and to stick to well known, well written and well supported plugins. All have to work in standard ways, and any that do quite blatant hacks have to be left well alone – no matter how cute.
I believe the same applies with most software. If you bought MS Word and then hacked it to work differently, then every other installation of it that you use with it would need the same hack for you to achieve the same work. And imagine if you implemented this hacked MS Word across a company – new employees wouldn’t know what was going on as they’d know Word, but not this special version, and when a new version came out you’d have a lot of work to do to hack that too.
I used to apply the same philosophy PeopleSoft implementations – recommending against large tranches of customisation, because they became a maintenance and upgrade liability. The sites that listened to this common advice, tended to have the most pain-free go-lives and upgrades. The downside was that I was kind of doing myself out of work – what with being a strong PeopleCode developer. D’Oh!