It’s the most common answer whenever I ask a WordPress expert why they love our favorite Content Management System (CMS) so much: extensibility.
When it comes to arguing for WordPress’ dominance over other CMS, extensibility is often the most compelling point of discussion. And with good reason – our ability to further WordPress’ capabilities with a seemingly endless selection of themes and plugins is the main reason why many of us use it.
But with great power comes great responsibility. And when that power is handed over to literally anyone, the end result can be unfavorable.
Open source extensibility has a dark side. Here’s why.
When installing a new theme, even the greenest of WordPress users will recognize that it is going to have a major impact on the presentation of their website. WordPress themes are often more than just “skins” – they can have a major impact on the usability of a website.
Although the broad intention is for themes to alter the design of a site, and plugins to add and/or edit its functionality, there is a lot of crossover between the two.
Take WooThemes’ suite of themes as an example, which come packaged with a selection of custom widgets:
Each WooThemes theme comes packaged with these widgets. You may well choose to use them on your site. If you decide in the future that you want a change of design and move away from WooThemes, you will also lose the functionality (which you may well wish to retain) via those custom widgets.
Crossover of functional elements is often unavoidable between themes and plugins, but could be better avoided under certain circumstances. For instance, WooThemes could package their custom widgets as a plugin, which could be retained even if their themes were no longer used.
Is there a logical reason why this kind of theme functionality shouldn’t be transferred to complimentary plugins wherever possible?
There is no doubt about it in my mind – plugins are truly awesome.
If you actually sit back and contemplate the scale of WordPress as a collaborative effort, it can be somewhat overwhelming. Nothing is more demonstrative of the power of the WordPress community than the number of free plugins available to us. Here’s a screenshot from the WordPress plugins repository at the time of writing:
Twenty thousand plugins. That is a truly extraordinary number – especially when you compare it to the number of plugins you have installed on your WordPress site. However, the abundance and perceived disposability of plugins can lead WordPress webmasters to some tricky areas.
First of all, the sheer number of plugins available can lead you to install and test a plethora of them. This can quickly lead to a bloated and slow to load website (and we all know how important site speed is). And don’t forget – many plugins you install leave a footprint which takes some doing to get rid of.
Secondly (and perhaps most importantly), many WordPress users treat plugins as if they are disposable, when often they are not. Take for example any plugin that employs the use of custom shortcodes to insert content into your site. Uninstalling such plugins can leave you with a site full of redundant shortcode tags.
Dedicating yourself to a plugin’s functionality can lead to big headaches in the future if you decide that you no longer want or need it (or if the plugin’s ongoing development and support is halted).
With Great Power Comes Great Responsibility
As a community, we face three issues regarding the above issues:
- Irresponsible developers develop plugins that leave a trail when uninstalled. Sometimes this is unavoidable – often it is not. Plugins that deconstruct elegantly should be a top priority, but often the opposite is the case.
- Naive/inexperienced users almost always stumble and fall when first presented with the full power of WordPress. That is of course part of the learning process, but the sooner they are aware of the potential pitfalls, the better.
- Unavoidable circumstances will always prevail, but it should be a responsibility of the developers to minimize such eventualities when possible. Furthermore, end users should be suitably educated to make informed decisions regarding extensibility.
Ultimately, WordPress’ extensibility is its greatest asset. We certainly don’t want that to go away. But the WordPress community as a whole should be better educated as to the associated risks, so that they can make informed decisions (and develop better themes and plugins).
Can you think of any other ways in which WordPress’ powerful extensibility can lead to unforeseen problems?
Creative Commons photo courtesy of dollen