As tweeted by MarkMcWilliams, some of the theme customization options for the TwentyTwelve theme have landed into WordPress 3.4.
By Jeffro on February 28, 2012
By Jeffro on December 21, 2011
Andrew Nacin one of the WordPress core developers highlighted a philosophy that WordPress follows by providing decisions, not options. One of the documents linked to in the article points to the WordPress Release Philosophy and more notably, the section of text by GNOME contributor Havoc Pennington.
It turns out that preferences have a cost. Of course, some preferences also have important benefits – and can be crucial interface features. But each one has a price, and you have to carefully consider its value. Many users and developers don’t understand this, and end up with a lot of cost and little value for their preferences dollar.
- Too many preferences means you can’t find any of them.
- Preferences really substantively damage QA and testing.
- Preferences make integration and good UI difficult.
- The point of a good program is to do something specific and do it well.
- Preferences keep people from fixing real bugs.
- Preferences can confuse many users.
I find that if you’re hard-core disciplined about having good defaults that Just Work instead of lazily adding preferences, that naturally leads the overall UI in the right direction. Issues come up via bugzilla or mailing lists or user testing, and you fix them in some way other than adding a preference, and this means you have to think about the right UI and the right way to fix problems. Basically, using preferences as a band-aid is the root of much UI evil.
Andrew mentions that if he had the opportunity, there are at least a half-dozen options that he would remove from WordPress. I’m in that same boat but I of course would add in an option or two to control the behaviour of post revisions. After reading Andrew’s post and listening to Ryan Imel of WPCandy discuss how themes should aim for zero options, I’m beginning to get the feeling that there is a battle afoot. Developers are now being encouraged to aim for zero options. As an end user, I believe this is foolish. I agree that getting something that just works, out of the box with no fuss or muss is awesome. But plugins and themes don’t seem to fit the bill of doing one thing and then doing it well. It may be the case in the beginning of a plugin or themes life but over the course of time, users want more functionality, more customization, which eventually ruins any simplicity the plugin or theme originally had.
Thankfully, the following post by The Theme Foundry nails the point in that it shouldn’t be about Zero options. Instead, developers should focus on presenting the RIGHT options.
We left it in, and actually added a toggle for hiding the author and categories as well. It was sorta painful, but I was beginning to realize the flaw in my philosophy: It’s not about eliminating options, it’s about having the right options. I know, I know – hardly groundbreaking. It’s been said before by many wiser people than myself. But it’s very easy to get caught up in a philosophy without considering the real goal, which is making a pleasant experience for your users.
And this is why I wanted to write this post – to counter-balance the anti-options, anti-configuration sentiment. It’s too easy to get caught up in a cargo cult – I know I did, briefly. Instead of making a theme either fully-customizable or configuration-free, I’ve realized that the ultimate goal is to add “just the right options” to make the user experience more pleasant. I think everybody would agree with that sentiment – but it’s easier said than done
That is a point of view and philosophy I can get behind. Two years ago, I remember myself and many others in the WordPress community hammering plugin and theme developers, especially theme authors on needing to provide more options so that I didn’t have to dive into any code to make changes. They delivered, but now we want them to go back and have as few options as possible. Whatever that perfect balance is between which options are visually present and which are not is what will generated a “Just Works” experience. As a user, if I see too many options, I feel inundated and overwhelmed. If I see too few options, I feel as though I won’t get very far extending the functionality of the plugin or theme without having to know some PHP.
So at the end of the day, as just a normal user, I view all of this as a recipe that appears to be very difficult to get right. Here are a few ingredients to the recipe that I’ve though of.
Know your user base – The more information you have with regards to how users use and interact with your code, the better decisions you’ll be able to make.
I still don’t like to code – I still don’t like the idea of going back in time, 3 years ago where I had to follow instructions on modifying functions.php in order to configure something. So instead of loading up one options page, I appreciate a tab or sub-section with advanced options that I can wade through. I like having the OPTION to DECIDE on viewing the advanced OPTIONS.
The Best Defaults – While W3 Total Cache is an extensive plugin, I love the fact that out of the box, it’s configured by default for most applications. I’m not savvy enough to really dive in and mess with the various options so this is something I really appreciate. Having excellent default configurations I believe goes a long way in accomplishing the goal of “Just Works“.
The bottom line is, I don’t want developers to abandon all options for the sake of doing it. I don’t want to be handed a blank piece of paper and then be told to decide what to do with it. I’m counting on the developer to determine what’s best for me up front but also give me some options to play with on the side. The determination on what those options should be and how they’re presented is one of the key problems for that developer to figure out.
I wonder if developers make good fortune tellers?
By Jeffro on June 12, 2009
In one of the after shows for WordPress Weekly, I discussed with Brad Potter and Michael Torbert that I would like to see an additional column of information be added to the WordPress backend that would show the Unique ID number of a post or category. The reason being, this type of information is not available in plain site and it seems like many themes have options which require you to know the ID number of something before you can show, hide, or manipulate that data.
It’s true that the ID number can be located by simply hovering the mouse cursor over a post or category when in the backend of WordPress, but I’d like to see that information presented in plain site. Actually, I wouldn’t mind if their was a Screen Option called ID# which would show or hide the column.
The argument against this idea is that a large majority of the WordPress userbase does not need to know this information. At least, not have it available in plain site. The other argument against this idea is that, it’s not a problem until a theme or plugin requires you to know this knowledge. Last but not least, the information is readily available by hovering over a link which means you can still figure out the UID without adding UI to the backend.
So despite hearing the other side of the argument already, I wanted to throw this out there to see what you thought. As it stands, some of the more advanced themes and plugins use this UID information, so is it up to those guys to create a solution which doesn’t require me to figure out a UID for a category or post? Or, by using these more advanced plugins/themes, is it up to me to figure out that I can get the information by hovering over the link? In the end, is this a non-issue, or does it have merit?
Funny thing is, older versions of WordPress actually showed this information in plain view.
By Jeffro on May 11, 2009
Sarah who does a great job sharing her WordPress knowledge for BloggingTips.com published a simple guide on how to add theme options to your theme. The guide goes over the code needed, explains what the code does, and provides a good base to start from if you’re planning on adding options to your theme. In today’s world of WordPress themes, theme options are a necessity to making it easy on end users to change various aspects of a theme. Just be careful you don’t go overboard adding every option imaginable.