Why I don’t like WordPress child themes and frameworks. Don’t be angry.
I know that child themes and frameworks are all the rage. Especially since the release of TwentyTen. It’s hard to find even one negative post about child themes on the web. I do understand that there are advantages to working with child themes, and they are very tempting. But. Not tempting enough. I purchased the Genesis framework from StudioPress a while ago but when it came to adding simple functionality, I felt like I had to go through a whole maze of hooks and filters. And that’s just for Genesis! What if I decide to switch to Thesis, Headway, or one of the other frameworks. And as for TwentyTen, what if I want to change around the whole layout? Is it still worth it to use a child theme? I can see the benefit of using child themes or frameworks for minor style and color changes. Am I still saving time? Let’s take a look at the pros and cons of child themes or frameworks as I see them.
Advantages (let’s start with the good news)
- Stays up to date to get new WordPress functionality. You just have to make sure it doesn’t break any of the functionality you have in place.
- Options Panels. Maybe (notice how this also appears in the disadvantages) Options Panels are great for people who don’t want to get their hands messy with code.
- Saves time on development. Maybe. Depends what you’re trying to do, but if you end up creating tons of custom files for your child theme, or spend time trying to learn all the ins and outs of the framework, or have to fix things that broke with the new version of WordPress, the time saved could come to a big zero.
Not very convincing advantages, are they?
Disadvantages
- Learning Curve / Development time. How do I add another widget or a query_post()? Good luck trying to figure out whether it’s in the child theme or the parent theme. Learning a new child/parent theme or framework can be a total time suck. Have I mentioned that already?
- Lots of unnecessary stuff and options panel. I miss the days when a theme was just a theme. It helped you out with the styling but left you in control of functionality. Can we go back to basic?
Now if you’ll excuse me, I have to go figure out how to remove all the features that the client didn’t order. Sigh.
What do you think?
Am I alone in these feelings? What have your experiences been with child themes and frameworks? What was the good and bad? Which ones have you worked with? Maybe you’ll convince me to give it another try.
Category: News & Views, Themes








I couldn’t agree more. I shudder whenever I hear people referring to child themes as the “only correct” way to build your own theme.
One of the main reasons I hear for why you should use a framework/child theme is to ensure you get new functionality and for security reasons.
But … the worst way to introduce a security flaw is surely to add a whole bunch of extraneous code right!? ie: add a framework instead of an uber simple theme.
And there’s no way I’d just want to randomly upgrade a parent theme. I’d need to do a lot of testing first to make sure I wasn’t about to break everything. There’s no way I trust the parent theme upgrades not to mess with my child theme during an upgrade, particularly if it involves a significant upgrade in functionality.
For whatever reason, people seem obsessed with the child theme/framework approach.
Oh, and another other argument is that functionality should always be abstracted from styling. But what the heck is the standard WordPress theming system if not abstraction of the styling from the functionality … sigh.
There are uses for frameworks, but I just don’t see them as being something we should be recommending for the average bum on the street. They’ll likely not even know how to do minor changes anyway since they’d need to figure out how the WordPress hook and filter system worked first, which is a bit too big a jump in difficulty for most people.
Ryan,
Thanks for sharing your opinion. I’m glad to hear I’m not the only one that has mixed feelings.
“the average bum on the street.” ??? They’ll likely not even know how to do minor changes anyway since they’d need to figure out how the WordPress hook and filter system worked first, which is a bit too big a jump in difficulty for most people… sounds rather insulting and judgemental ..maybe they are not so stupid as you seem to make out ..maybe they are willing to learn and open to developing their skills further …maybe ?? I only started using WordPress a couple of months ago and found child themes and using hybrid framework pretty easy … whether I am classed as a bum on the street I dont know
Very interesting Rebecca. While i love the options I get with Genesis/Church theme, oh my god!!! The tsouris!
Took me and a friend forever to figure out the Dynamic Content Gallery – its shown as if its a simple part of the theme, but in fact its a very complicated add-on. Every step forward took us two steps backward.
In the end, I love what I did with my site and I think it looks great – but there are definitely more gray hairs on my head because of it.
Anne, I love your site title and tuna melts. Mmm.. I could go for one now. Something I quickly noticed is there isn’t a title tag on your site – only the URL shows up.
Oy Rebecca – I wish I had the bucks to get you guys to rescue me. Besides http://www.menopauseinmanhattan.com, I have http://www.annekleinberg.com which is Joomla (yuk). And I have five other wordpress blogs (I’m a wordpress junkie). I have to streamline them all, combine or whatever, but I understand gurnisht about all this stuff. So.. what should I do about that title tag???
On the positive side, I’m in NYC now promoting my book and although I haven’t yet dug my teeth into a tuna melt, the book is getting lots of attention! (its in Steimatzky!)
Cheers!
Anne, for the title tag, you can try the All in One SEO Pack plugin or the Yoast SEO Plugin and adjust titles in there. Otherwise, you can go into header.php and find the title tags.
I agree. It always seemed a little unnecessary to me to do child themes. I totally get the point of not wanting to overwrite functions and files that may be updated through a theme update, but isn’t the whole point of a child theme so you CAN overwrite and update parts of the parent theme?
Jason, very good point. I just can’t bring myself to start using them.
Jason, if the point of a child theme is to overwrite parts of a parent theme, why not modify the parent theme rather than going the child theme route, especially when modifying more than just the font style or color?
To continue my rant …
Another common reason I’m given for using child themes is that you should use them to make sure your theme doesn’t break during an upgrade. But seriously, what the heck in a theme is likely to break during an upgrade!? I’ve been using WP since around version 2.2 and I have NEVER seen anything break in any of my themes. If you are incorporating functionality which could have broken since v2.2, then you were either doing something horridly wrong, or have an extraordinarily complex theme which probably would require that functionality being rolled into the child theme anyway, in which case you would still have the theme break anyway.
Technically future versions of WordPress could break themes, but it seems highly unlikely. The WordPress core developers are extremely careful about not breaking backwards compatibility and so you shouldn’t have any problems on that front for a very long time to come.=
It’s really a big case of ‘it depends.’
If all you want is to take the default (Twenty Ten) theme and change some CSS, I always advocate you make a child theme OR duplicate the whole thing. Why? Because when you upgrade WordPress you LOSE all your changes. Come hang in the WP forums a while and see who cries on Upgrade Day.
The reason parent themes are good is when you want to make SMALL changes. The minute you want to rejigger it all and make it super special, you should fork the theme and make your own. But the small stuff is great for child themes <em>in perspective</em> because of upgrade loss.
For a lot of new folks, a child theme is the first step to understanding how themes work, and it’ll let them step out and create their own eventually.
Ipstenu, yeah, I don’t think I emphasized that enough about how you should NEVER use the TwentyTen theme as is.
Good point. Small CSS changes are definitely suitable for child themes since the upgrades should go fine. I’ve done that once myself when someone wanted a tiny modification of a parent theme.
The problem as I see it though, is that people are using child themes for massive changes in design and functionality.
Another problem is that people read that “chlid themes are the correct way to theme” and so they take a random theme from the internet and make a child theme for it. Then they wonder why their changes break on an upgrade …. they didn’t check that the theme was intended as a parent theme first. Just because any theme can be used as a parent theme of course doesn’t mean they should, but there seems to be an awful lot of people who don’t realise that. Thankfully most themes don’t get upgraded heavily and hence don’t break child themes often, but that’s more through good luck than good management on the part of those making child themes in that situation.
Attitudes to standalone themes in the WP community annoy me.
I’ve been known to just rip the HTML, CSS, scripts and images from theme frameworks and patch them into a standalone theme just to make them a little easier to work with. It doesn’t take that long since most of the work is already done. It’s just a matter of making sure the loops and comments are working as expected and maybe add the occasional snippet of PHP to change body classes etc..
It gets rid of all that dastardly extraneous code junk and pares it nicely down to the bare minimum for you
Much easier to work with that way.
Interesting take on Frameworks and Child themes. I suppose it all comes down to one’s personal preference. We use frameworks (Genesis mostly), it’s a great jumping off point for customizing themes for our clients, and also because we’ve found that their code and support forums are what we understand best.
If concept itself is flawed then where does all the happy rage come from?
Frameworks and advanced parent themes (which you are really talking about, simple child themes are just minor tweaks to allow parent theme updates) are very individual things.
The choice of framework must be perfectly tailored to your development needs.
Why did you purchase Genesis? What specific development issues you expected it to solve or improve?
Rarst, I bought Genesis because I really liked the theme as a starting point and then wanted to change some of the functionality. Which was frustrating.
I do use child themes, I have to admit, when (as others have said) there is a relatively small change to be made. Especially this helps in a big multisite environment where I want to give my users a few more options, but without changing the parent theme which people use as a beginning default.
But more and more I’m finding that the child theme is a middle ground which can be the worst of both worlds. When there’s a big change, or a lot of small changes, I’m better off with just making a whole new theme. When it’s a small change, it’s often the case that just a custom page template takes care of the needed option, or even letting the user have the custom css plugin and just make the tweaks herself.
Very interesting point of view, I have to admit that I don’t need child’s features 99% of the times.
I tend to agree with ipstenu in the “it depends” category. For the most part, I find frameworks to be a bit overwhelming for 90% of the projects I put together. When I try to use a child theme, I find myself trying to override more things in the parent theme than I’m using.
However, for really large projects, frameworks can be extremely useful.
I think one of the biggest issues is simply the way most of the frameworks are built. Rather than providing a good starting point, they tend to try to cover every possible variable; which means that a lot of stuff needs to be overridden.
For instance, if I were to find a framework that simply provided style.css, index.php, loop.php, header.php, footer.php and functions.php, I’d probably be pretty happy. Unfortunately, the overwhelming majority of the frameworks I’ve seen tend to include all of the files in the template hierarchy; which means, if I want my archives to look the same as my home page, I have to override either archive.php or home.php with a copy of the other in my child theme.
Like many have said, it’s a preference thing. I’m a Thesis guy for the most part, but I’ll roll my own from scratch when the situation warrants it. Many times (at least with Thesis) the options panels gives my client the little bit of tweaking they want to do without the ability to break my code.
One big plus with (some) frameworks is that they remove the need for adding multiple plugins. I like keeping plugin use to a minimum, since they each come with their own code style and potential conflicts. But again, it really comes down to the project at hand. If I’m spending more time removing / overriding code in a framework than actually coding what the site NEEDS, then I’m better off starting from scratch.
The more I hear it, the more I hate hearing the terms “framework” and “child theme” in the same sentence. If you don’t mind, I’ll link to the post that <a href=”http://justintadlock.com/archives/2010/08/16/frameworks-parent-child-and-grandchild-themes”>explains the differences</a>. If you look at the only true theme frameworks for WordPress (Carrington, WP Framework, and Hybrid Core), you’ll see that this post doesn’t apply to them.
I mostly agree on the issues of using parent/child themes though. If you’re wanting to do much more than some CSS changes and add a handful of custom functions, then you’re probably going about it all the wrong way. At some point, you’re just building a custom theme.
Good point. I need to be more careful of that distinction.
Wait, doesn’t the conflation of theme frameworks and parent themes come directly from the WP Codex?
>>>A Theme framework is a Theme designed to be a flexible foundation for quicker WordPress development, usually serving as a robust Parent Theme for Child Themes.
http://codex.wordpress.org/Theme_Frameworks
I got to agree with the loads of unnecessary stuff. I also don’t like themes with a custom theme options panel for that same reason. It becomes heavy and a lot of times, it takes more work to customize it to be your own.
I strongly agree with you. I always thought I’m the only one…
I totally agree, Rebecca. I jumped into frameworks thinking they would make life easier, but they made life harder, because all non-CSS changes had to be done in PHP in functions.php . Implementing and troubleshooting those was a nightmare for a non-programmer like me. My conclusion: I thought frameworks would be good for dumb people, but they’re only good for smart people.
I’m a relative newbie; for me, child themes have been great. I install a theme, and there is always something I don’t like. I installed a new site yesterday using a new theme, and immediately removed / altered some elements using CSS – much tidier in a child. And sometimes when I start, I have no idea whether I am going to make big or small changes; am I going to ditch the theme the next day? Or (as sometimes happens) will I use a particular theme on multiple sites, but with different changes? Or (as has happened) will I restore aspects of a theme that I initially didn’t want?
The best thing, I think, is that it really helps me to keep my changes separate from the parent theme. Hacking into a theme is a very messy thing to track, especially if you change your mind, or you want to repeat some of the actions in another child. Clarity must be a good thing?
Hooks and filters I struggle with just from technical understanding - I have been introduced to them using Justin’s Prototype theme, and I have found it hard to track down what’s going on where, but hacking the parent is still not the answer.
I agree with you that sometimes you need to do a lot of work with child themes to overcome a very simple thing.
The main point I face this is when editing the header.php file for twentyten, it’s got too much code that I usually don’t need.
But in general I find it more time saving that creating themes from scratch or using blank themes like Blank theme or Starkers theme, which take a lot of time to get everything to look right.
So, what’s your favorite way for creating themes then?
The reason you don’t like child themes or themeframes is because you understand all of the garbledygook that is WordPress. Justin, Ipstenu, etal, can write books on it.But for us, who are just looking for something that makes a theme more personal, they’re a godsend. Child themes enable us newbies who, as Justin notes, dread the impending updates, sneak in a few css tweaks. That is assuming the theme lends itself to them as some have so much built into their coding as to preclude a child theme in some instances. And the themeframes sorta level the playing field a bit, as we, those of us more code-challenged, can squeeze some rather elegant and personal themes out of WordPress without having to cross over to the dark side. My guess is that WordPress greater audience is apt to embrace both techniques while developers are loathe to accept them.
I recently updated a theme and all of my customizations were stripped away. I’m pretty new to wp so when I heard about child themes and all the good that they could do naturally I wanted to know the cons as well. Right now I confused, maybe I should not update my themes at all or at least until I learn a little more about how stuff works. Thanks for the advice, it has been really helpfull.