Ben is a lifelong Nintendo fan who likes to build websites, and make video games. He buys way too much Lego.
WordPress theme frameworks are on their way out. They’re dying a slow death. At least that’s what I think.
Nathan Rice recently wrote an article with his thoughts about theme frameworks – in defense of them – however he clearly has some bias towards them since he’s working on possibly the only framework worth considering – Genesis 2. It’s certainly the only framework people seem to talk about these days. I get the impression Canvas from WooThemes is still enjoyed – and others will likely say they are doing well – but in my opinion there’s no longer any need for them.
Defining ‘people’ or ‘users’ is hard. These are terms that can mean different things to different people. So, in this article, I am going to refer to users as the customers I am most familiar with. This isn’t developers – regular people who want a WordPress theme for their site. They don’t know much about design, or about programming (likely they don’t know anything). Possibly they have been tasked with getting a theme for their company to use on their corporate blog.
In thinking about this I wanted to look at the past and why frameworks were first created.
WordPress theme frameworks became popular when WordPress was simpler. People wanted control panels to edit settings, areas to upload headers, built-in thumbnails, custom menus, all these clever things that made their website sparkle.
As time went on these features were slowly developed and integrated into WordPress core. Much of this was driven by WordPress.com and the users there wanting to be able to customise their sites more thoroughly.
Who killed WordPress Theme Frameworks?
Where WordPress kept improving, the requirements for frameworks didn’t really change. So over time WordPress got all the features people wanted and the functionality in themes became redundant. Reading the feature list for a framework these days is like reading the WordPress feature list.
Then we had plugins. Theme Frameworks used to market themselves on their SEO abilities – but frankly that was a sham. Sure – many of them did things that helped with SEO – but many more said they were SEO optimised when they were no such thing. Then the WP SEO plugin came along and made all those claims redundant. There’s still certain things that can be done in themes to help with SEO (semantic well structured html) but in general as long as you’re sensible (and use WP SEO) then you don’t really need a special theme.
Another problem has been caused by WordPress theme shops – myself included – releasing child themes for their frameworks. The problem with this is that we then go back to the problems child themes were created to address. Child themes were meant to be a way for users to edit themes without worrying about code updates; but since the child themes were being sold – new methods were needed to make changes to the styles – which meant additional settings and other methods that are the exact thing child themes are meant to solve.
Grandchild themes are one possible solution to this – children of child themes. However these add additional layers of complexity and confusion, not to mention overhead on the server side (additional file operations). The other solution is to stop using theme frameworks and create child themes as originally planned.
Last year I mentioned I was working on Elemental 2. I also mentioned my new philosophy towards theme development. When I started it felt really liberating. I was able to cut loads of code and the theme got lighter and lighter and cleaner and cleaner. Eventually the only thing that was left that wasn’t a standard theme element was the settings code – and then the Theme Customisation API was released and even that wasn’t needed.
So I stopped using frameworks. Since then I have worked on a Mimbo Pro, and 3 new themes – Opti was released last year – Isca was released today on WordPress.com – and Traveller is in progress. None of them use a framework, and they have very few customisation options. They are simply good quality themes that I’ve put a lot of time and effort into.
The way I see it there’s 2 solutions.
- Build the theme from scratch every time.
- Use a starter theme like _s.
For the recent Binary Moon redesign I made the theme from scratch. For Pro Theme Design – Darren and I have developed our own starter theme. It evolves with each new theme we make, and it’s sped us up quite nicely without giving us the overhead and complexity of a framework.
I’m sure frameworks will be around for a while longer, but in my opinion they create more work than they save. Anything added through a framework that you would want to update or reuse in multiple themes should be developed as a plugin since that offers the most flexibility.
So what do you think?