My Premium Theme Experience

Tell us what you think of your hosting for the 2014 WordPress hosting survey!

I’ve been working on a design for my girlfriend’s blog recently.

Heather wanted a blog to document her year studying abroad, so I set her up with a WP install on what’s — even if I do say so myself — an excellent domain, http://heather.in/ (and this is made all-the-more better by the permalink setup, so posts are published as heather.in/england/with-a-cold, for example).

I figured the quickest and easiest way to get the site off the ground was to use a premium theme. Heather was after a simple, personal-feeling theme so it made sense as a time-saver.

The shiny theme on the finished blog.

And so I set about finding The One®.

My first problem came when I wanted to draw up a shortlist to send to Heather for her to look over. Despite all of the “theme galleries” begging for your traffic in order to show you pages and pages of affiliate links, none of these seemed to have themes actually organised into any logical order.

I was thus left to browse through the theme libraries of a handful of vendors I figured would make good options, drawing up my shortlist from that. Not ideal, but no particular cause for complaint. From the shortlist, we were able to narrow the options down to two or three options which would’ve worked well.

I can has affiliate clicks?

As all the themes on the final shortlist were licensed under the GPL, in the end we went for a mix-and-match approach, taking bits of two themes and bolting them on to the other, which we used as a “base”.

The site ended up turning out really nicely, but the moment I stopped using the options panel and tried to do some coding for myself, the problems started.

I’m not going to name names here as it’d be unfair to judge a theme vendor which has many, many themes on the basis of one of those themes, but I was appalled at how badly made the theme I used as the base was. It was genuinely absolutely atrocious.

The fundamental problem was that the theme was built around the options page. The secondary — and in practice vastly more annoying problem — was the theme accounted for the options by adding a bunch of CSS IDs and classes to pretty much everything, which meant the bulk of the CSS was spent burying down into very specific selectors just to align the sidebar left or right.

This meant that when I came along and wanted to do some quick customisation to the sidebar by, say, moving it from left to right, instead of writing:

#sidebar{ float:right; }

I had to write something like:

.two-column.standard-width #sidebar-align #sidebar{ float:right; }

The problem with that? Instead of having a “default” layout where #sidebar was floated left, the “default” was floating the sidebar left by adding a load of classes which were powered by the options page.

You want email signups? Sure, that’ll only take me far longer than it should’ve done thanks to the horrible CSS structure!

I ended up just stripping out most the options-powered functionality in favour of something simple which just worked. After I’d done that it only took me a couple of hours to fiddle around with the look, set up email subscriptions and make the design responsive.

And this brings me around to something I mentioned on Twitter a couple of weeks ago. WordPress themes need to be using scalable and modular CSS so that when customers come around to customising themes, it’s super-simple.

People think PHP code is scary, but CSS is just about manageable. You can go a long way customising a theme just using CSS, too — when I’m answering questions in the WPZOOM support forum, a hell of a lot of the tickets can be answered with a couple of lines of CSS.

So take this as a public service announcement and a warning, if you will. To theme makers: please, please ditch the thousand-option options pages and implement what you do have using CSS that makes sense. I don’t want to have to jump through ID and class hoops to make some very simple changes.

And to theme buyers: just have a read through that stylesheet before you buy next time. You’ll likely thank yourself later on.

It’s not ranting, it’s constructive criticism. Let’s talk it out folks.

Found this helpful? You'll find us helpful!

WPShout is published by a full-service WordPress-loving constultancy, Press Up. Get in touch with us about your project or business idea, we're knowledgable and friendly.

About the author

Hello, I'm Alex! I started WPShout in 2009, just before my 16th birthday. Get in touch with me, I'd love to chat. You should also follow me on Twitter :)

12 Comments

  • I have given a try to both the premium themes that you have in screenshot.
    Biggest problem with Theme Market is that most of the users like to buy themes with that *shiny* options panel. That’s the first thing they would ask for.
    In my opinion options page are real time killers. Most of the options stuff can be easily done using some widgets and theme customizer.

  • Anthony Lodge

    a lot of themes these days are built on responsive grid frameworks such as skeleton. do your concerns applied to such themes? not sure where you were looking for themes but having looked at a lot of wp theme developers over the past few years, i stick to a few authors on themeforest almost exclusively.

  • Jesse

    I love your use of Lobster. I typically use it for huge headings, but looks awesome here.

  • I agree as most of the themed sites we do for clients with limited budgets need to be edited on some way or another to make them do as the client wishes. Sometimes it’s even difficult to find the correct stylesheet file to edit!

  • Lisbeth

    I do hope that this article gets the attention it deserves – I only dip in and out of WordPress and CSS so to a certain extent I blamed myself but man, I counted the number of occurrences of !important in the main stylesheet of two premium theme vendors at the weekend: 32 and 26 respectively!

  • I’ve had similar experiences recently at work. A client came to us with a premium theme wanting a few modifications…

    Not only was the parent stylesheet littered with overly specific and !important declerations, it’s also use a responsive grid system where the grid classes where in the templates files, but they didn’t quote match what we wanted, so had to change almost every single on of those.

    The other thing that really surprised me, was how inflexible some of it was… Want to feature some content on the homepage? Sure, but only if you want 3 columns that follows a very specific structure – Surely just throwing a widget area in there would be more flexible and save on a page in the theme options.

    The total time spent modifying it (via a child theme, obviously), was probably close to what it would have been to build that site from scratch.

    Do “premium” theme designers not realise that developers are a potentially huge market for them, and making it as flexible and extensive under the hood would be a huge selling point (yes, I know you’ll never please both parties 100%, but I think there’s a compromise to be had).

  • @Damian Gostomski: I’ve also had the same experience with clients who provide us with a theme in their concept package. They seem to believe it will decrease the amount of time spent developing their project. This is however RARELY the case. As you mention, in many cases it takes much longer to produce a product that, in the end, is not entirely satisfactory.

    These themes have been produced with the idea that users should never have to look at the code or make changes on that level, i.e. not for developers. However, we as developers often have to use these themes in client projects. It seems only possible to tell clients we cannot guarantee the functionality of the theme they suggest to us. Such projects are then reduced to installing the theme, setting up the site structure and making whatever typographical or colour changes are made possible by the theme.

    Although we would much rather produce a quality website with a custom theme that will be satisfactory for the client, in most cases there is a very minimal budget and offering anything of a higher quality would result in losing the contract.

    I believe Justin Tadlock is on the right track with his experiment (http://justintadlock.com/archives/2012/09/17/themeforest-an-experiment) by promoting stricter regulations governing the quality of themes on platforms outside of the wordpress repository.

  • I have invariably found that the more theme options there are, the harder the theme is to modify via CSS. So for clients who really like the theme out of the box, or only want to make the kinds of changes that are possible via the options panel, themes like that are fine, but if a client wants something more customized, I pick a different sort of framework to work from. There was a presentation at WordCamp SF this year on “How Not to Design a Default Theme” and one of the items covered was theme options panels with billions of settings. I can only hope the trend for overloaded options panels will pass.

  • yudayuda

    Thanks for a great post. I had the exact same experience, with the exact same vendor – nightmarish CSS, lots of !important, many different stylesheets that get loaded *after* the child-theme CSS, and many references to the options-panel, even though they don’t seem to be required at all.

    Real shame, as it’s a prominent vendor, and clients do love their themes and prices…

  • Finding a theme that looks good out of the box is becoming easier and easier. There’s bunches to choose from. Finding one that looks good and is coded even better and is becoming harder and harder however. The quality of code seems to be on the decline and unless I can vouch for the theme author, I’d be pretty hesitant to buy premium themes again any time soon after a spate of similar problems. My personal preference of late has been to build themes from scratch using the awesome _s starter theme: if you haven’t yet tried it, I highly recommend it!

  • Hi, Finding the right theme for a blog is really a tough job. I faced many issues when i started my blog and now finally settled with Genesis Framework and made some CSS Modifications. Thanks for Sharing this Great Post!