Convention over configuration in WordPress themes/plugins
The concept of “convention over configuration” is nothing new in the software world. Plenty of people have written about how this applies to the WordPress philosophy, with several links on the topic at the end of this post for your reading pleases.
I agree with these, and although there are many cases where you need an option or two, there are definitely just as many cases where you don’t.
Single purpose plugins
I’m a big fan of plugins that perform a single task, and do it well. In such a case, the mere act of installing a plugin should activate the single piece of functionality and get out of my way.
In most cases, this doesn’t even require a user interface, but even if things are a little more complex, assume some sensible defaults and let me get on with my day. That however was not the case with the WP Require Login plugin.
I needed to temporarily lock a site down while I was away from Git/FTP, so quickly searched for relevant plugins from within WordPress, and installed the first one with a decent rating. Once activated, I double checked it was all working in another browser, and to my surprise, it let me view the full site.
I was about to remove the plugin and search for another, when I noticed there’s a settings screen. Maybe some complex permissions, or the ability to set a holding page instead of redirecting to the login screen? Nope, below are the “options”.
The act of installing and activating the plugin should be enough of a hint that I want to restrict access to the site, don’t make me jump through another hoop to do so.
Now, you might be shouting at the screen, saying that you need a way to easily block access to the site, and you might not have the capabilities to manage plugins? Well, I’m not sure I would trust someone with this if I don’t trust them to manage plugins.
I hope the above hasn’t seemed like too much of a rant, but I do hope that developers learn to challenge their assumptions on what’s really needed as an option, and to remove the burden from users with sensible defaults.
As I mentioned at the start, there are numerous other article related to decisions, not options within WordPress, here are some of the best: