The Problem With “Theme Options”

Since the release of ElegantBlue in October of 2007, I’ve seen quite a few free and premium themes using the “theme options” code I included in that theme. But with the widespread adoption of “theme options” has come a tidal wave of complicated and unmanageable themes.

Theme Options are great! They let you give editing power to your users without making them modify code. For the vast majority of bloggers, the code that runs their blog (or theme) is completely unintelligible, and therefore, themes that include options on the backend for doing things like integrating feedburner, inserting contact information, choosing a color scheme, etc., are in high demand.

But in order to cater to another equally important audience, I’ve been reconsidering my position on theme options.

Many bloggers, including myself, are extremely comfortable with things like XHTML and CSS. We don’t mind cracking open a theme and changing a few things here and there. But many of those same bloggers look on in dismay when the theme files are riddled with PHP code (other than basic, and highly understandable, WordPress functions). And for good reason! PHP can be intimidating for the average Web Designer.

In places where they were used to seeing <a href=”http://feeds.feedburner.com/nathanricenet”>Read my feed</a>, they instead are greeted with an onslaught of PHP conditional statements, checking for variables stored in the database in the form of, you guessed it, Theme Options.

And thus, you have just alienated a potential customer or user, because in your attempt to make things easier on the average user, you’ve ignored the guy who actually knows how to do a thing or two.

Theme Options should first and foremost be used in moderation. Theme Option pages that are 3-4 screens long scream “If you don’t edit me via the theme options, there’s a good chance you won’t be able to edit me at all”.

Here are some tips:

1. Use Theme Options sparingly

Keep them to a minimum. Not everything about the theme needs to be edited via the backend options panel.

2. Comment, Comment, Comment!

PHP allows you to comment without the code showing up in the markup. Use this to your advantage to communicate with theme modders. Give detailed instructions so they don’t become overwhelmed at code that could just as well be gibberish.

Also, feel free to give instructions, or better yet commented code, that helps them achieve the plain text code they were seeking. They’ll love you for it.

3. Give an options to download the theme, option free!

It’s really not that hard to just strip the options out of the theme and let users download the pure and simple WordPress theme they wanted.

It’s not that I’m against theme options. Like I said, I was one of the few theme authors that used them at the time. But I am just a little disappointed in the monster that has been spawned. But I think that if theme authors would follow these 3 simple steps, it will make the theme options beast a little more manageable.

Comments

  1. Ptah Dunbar says

    good point Nathan, but unfortunately, its a monkey see monkey do game here…

    A lot of people spend to much time catching up or copying everyone else that they fail to see what their actually doing.

  2. Jeffro2pt0 says

    Hmm, I’ve been preaching for theme options for quite some time but when I look at it from your points of view, I think I may have help contribute to this beast. The last thing I would want is a theme with every configurable option under the sun, I’d rather have options for major coding stuff. Things such as modifying my sidebars or rearranging content columns I think would be good options. Options for things like Feedburner and Technorati integration seem like overload.

    Sigh, like any good thing, if over used it becomes bad.

  3. John Whiteside says

    Remember, not all users are the same. I’ve used one of your free themes with Feedburner options, and I liked that; it saved me some time.

    I think you touch on the key in your post: think about who you are designing for, and let people know whether there are options before they download a theme (or find out whether they want them when you’re custom designing). Some people want to do it themselves, others don’t; having different versions of the same theme is a great idea.

    Different users, different needs, all valid; there’s no right answer, there’s what will meet the needs of your users and make them come back for more (hopefully with money in hand).

  4. Nathan Rice says

    I don’t think options, even excessive options, is a bad thing necessarily. But when you put backend options for everything, you’re alienating a particular group of modders.

    I actually think options #3 is a good option. Just give users an option-free version to download. That way users like John still get the convenience of a quick setup, but power users can still mod without fear of screwing up the PHP.

    Everybody wins! :-)

  5. WPModder says

    Great post, and I would agree with what you and others have said, especially John Whiteside. I think your target theme audience should dictate your use of theme options, and if you’re target audience is everyone, then a themer should try and make different versions available for different audiences, the beginners, the theme modders, and even the experienced WP hackers.

    I have just recently started releasing themes, and one of my goals is to make things as easy as possible for people with no CSS, HTML, or PHP experience to change the look of these themes. I haven’t even jumped into using options yet, I’m just relying on commenting my code well at this point.

    I’ve got a long way to go, and I’ll admit that the themes I’ve released so far aren’t the greatest. I think in a perfect world, there would be two versions of every theme like you said, a “beginner” version and an “advanced” version.

    We’ll see what the WP future brings;)

  6. Jon Soroko says

    The voice of ignorance and no expertise here: my competence stops somewhere halfway through html. I like backend options – say, layout changes – or easily changing headers – as I like widgets.

    And I’m currently deciding on a premium (paid)theme – I WANT to be able to pay people for their work. But I can’t at present pay several thousand dollars – so what I’ve been looking for is more backend options so if I find something near perfect – I can make the last change myself. That being said – I didn’t understand most of the conversation above.

    And – among my circle – I’m fairly geeky – I know a few UNIX commmands, a lot of DOS commands. But CSS and PHP? Vast ignorance.

    that said – hats off to all of you who produce these amazing free themes.

    Jon Soroko

  7. Team Nirvana says

    I am currently using your theme on my blog. Its anyway going to take a while before it gathers momentum. I claim not to be a php expert but I can understand whats going on.

    So trying to shift the feed and mail icon into a single box.

    Thanks for sharing these tips and providing us a theme to build something on.

    You made my day for sure.

    Thanks.