Recently there’s been a lot of (mis) information around about “how to start your own premium WordPress themes site”.
They make all make it sound fairly easy.
Just make a design, hack it into a WordPress theme, buckle on a zillion theme options using the old Woo options panel and you have yourself a wonderful theme that’ll make you rich.
It’s a lot harder than you think to make a good, respectable theme; only about 10% of premium themes are actually any good.
“Good”, being a theme that’s well built, well supported and follows best practises. I’m of the view that the vast majority of themes don’t do this. Don’t let your new site join the ranks of other mediocre themes, follow my handy guide and you’ll be flying in no time.
First off is to make sure your code and template files are the right bits for the job. Have you got too many template files? Is your author.php file doing essentially the same as your index file? Know your file structure and you can vastly reduce the amount of work you’ll need to do. Equally, ensure your loops are run as efficiently as you can; do really need a second loop for that featured content area?
Add features, not bloat
Building in features is always fun, but it is very, very easy to get carried away and start adding a whole load of widgets and fairly useless features that nobody will actually use. Be very careful when adding features like widgets; always be thinking “who will actually use this? Would I be better off bundling an optional plugin with the theme?” Speaking of plugins…
Don’t rely on plugins
I thought I’d seen the back of this one a while ago, but apparently not. Under no circumstances whatsoever make your theme reliant on plugins. What does that mean? It means if a user has to install a plugin for your theme to work, that’s relying on a plugin. By all means build in support for popular plugins, in fact, that’s always a good thing to do, just wrap calls to plugins in ifs so if the plugin isn’t installed then the theme still works.
In my list of bad things to have, this is right up there. Whilst the line between theme and plugin has blurred of late, themes shouldn’t be reliant on plugins.
Run out of the box
“With built in 1000 options!” About nine months ago this was very cool. 1000 options! Wow! That’s the reaction you could expect from potential customers.
Not any more.
Just take a moment to think how long it would take to set up 1000 options. Ben first told me this and at first I wasn’t too keen on it, but on reflection, he’s bang on. Themes should work as much as possible out of the box, without any customisation or set up. When someone first installs your theme, they should be greeted by their latest posts, not a whole load of errors telling them to set up the options page. Speaking of…
Make a useful options page, if at all
Options pages should have as few options as possible. If your options page spans five pages, you’ve got something is fundamentally wrong. Users have come to expect options pages and whilst five pages of options does sound impressive, it means there’s too much in your theme that’s fiddly. Let’s have a couple of examples:
- “Link to logo image” — big no no. Provide an uploader and auto resizer so users can upload something quickly and easily.
- Featured content images and text — another no no. You should be using a category, custom field or even custom post type for this, but don’t make users type in their featured content by using the options page.
- Category/Page IDs — don’t make your users search around for the IDs of various categories, give them a nice list of categories/pages to choose from instead.
You should also ask yourself whether you actually need an options page at all. If all the options you’ve got are Analytics and Footer text, why not follow Leland’s example and instead recommend a purpose built plugin?
Don’t duplicate WordPress’ functionality
The number of themes that have some fancy menu system, some odd way of doing images for posts or a quirky way of organising widgets through layers of options is just astounding. If WordPress already does something, then don’t duplicate the functionality. Use the post thumbnail function, the 3.0 menu manager and the widgets page. Work with WordPress, not against it.
I’ve not really touched on the other ingredients outside of the themes themselves, but they’re going to change in each situation; you may decide a ticket system works better for you than a forum, for example.
Either way, just because the barrier for entry into the premium themes market is low, don’t let your themes be of that all too common low quality.