One of the requests we get asked all the time at WooThemes is, “Which theme should I choose?”. I understand why people ask this question but unfortunately it isn't a simple answer. There's a lot of variables and things you have to understand before you pick a theme. The most important of which is what themes shouldn't do…
Theme's Shouldn't Contain Functionality
For the most part a theme only provides a layout and design for your site. It doesn't provide major functionality for things like e-commerce, email lists, contact forms, etc… A theme's functionality should strictly be about presentation and design.
Technically it shouldn't matter where the code is located but the problem is that it's very likely that you'll want to switch themes at some point. If you have functionality in your theme then you'll be stuck with that theme forever or you'll have to pay a developer to extract that functionality out of the theme into a separate module (called a plugin).
If you need specific functionality then I recommend starting with a plugin in the first place rather than getting something bundled with a theme and paying for it in the long run.
Themes Should Control the Appearance & Design
Themes should control the design; things like colors, fonts, and sidebars. Over the couple of years this blog has been live I've switched theme's a handful of times. Right now I'm partial to Highwind by James Koster. The things I like about this theme are:
- The giant header which allows me to choose the color (I picked purple because Donatello is my favorite Teenage Mutant Ninja Turtle)
- My Gravatar in the center of the header
- The little arrow in the bottom right of the screen that takes a user back to the top of the page (very useful for sites with lots of content on the page)
- The Jetpack infinite scroll support which styles the load more content button
All of these are appropriate things for a theme. They all relate to the way it looks and none of them are mission critical. My contact form, twitter widget, backup functionality, and antispam functionality are all done via plugins, WordPress core, my hosting, or something else. If I decide to change my theme I don't lose anything.
So when a user asks which theme they should choose honestly you should choose which ever one you like the look of. Imagine the theme with your content and pick it based on looks alone. If you let plugins do the rest you'll be in very good hands for years to come.