elegant themes

Why I don’t like WordPress child themes and frameworks. Don’t be angry.

| May 26, 2011 | 38 Comments

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.

0saves
If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.

Tags: , ,

Category: News & Views, Themes

About Rebecca Markowitz: Rebecca Markowitz has built over 50 WordPress sites for clients as Web Project Manager and WordPress specialist at illuminea. illuminea is a Jerusalem-based boutique web agency. WPGarage shows my dedicated relationship with WordPress over the years - full of love, laughs, tears, growth and strong drinks. L'chaim! View author profile.

solostream

Comments (38)

Trackback URL | Comments RSS Feed

  1. Ryan says:

    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.

    • Rebecca says:

      Ryan,
      Thanks for sharing your opinion. I’m glad to hear I’m not the only one that has mixed feelings.

    • Mike says:

      “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 

    • Neil Stoker says:

      That’s a long multipost rant (his word) from Ryan.  I love the fact there is passion, but find it hard to understand the anger – if you want to hack a theme, go right ahead, no-one is topping you.  I LOVE using child themes, whether doing a tiny styling alteration or major changes – mainly because I can always recover by going back to where I started.  As I can clearly separate my work from the original theme, and I go back and forth in a pretty chaotic way, so for me, hacking a theme would be a really messy way to proceed.  I also find that things I wasn’t initially interested in in the original theme suddenly have relevance, and I might well have hacked them out of existence.  

      And regarding updates of themes, it is true that a child theme may not behave perfectly after an upgrade of the parent, but they are likely to work OK.  However, as I understand it, a hacked theme would not be upgradeable at all, because everything would be overwritten.

      It seems some people hate child themes because they are too complicated, and other because they are only for trivial changes.  The way I’ve gone, as someone learning the game, is to sign up with Theme Hybrid for a small fee – mainly because I was using one of their themes, but I have had rapid excellent help on my child themes based both on their themes and on others that I have been using.  So there is (as far as I can see) no agenda from them about using their themes (which are in any case free).

      And I would echo the comment below that frameworks and child themes are completely different entities.  Frameworks are (as I understand it) for people developing independent themes of their own, using building blocks that others have developed.  They are completely different from child themes, which sit on top of any theme, and people like me can play with. 

  2. 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.

    • Rebecca says:

      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.

  3. Jason says:

    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.

    • Miriam Schwab says:

      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?

  4. Ryan says:

    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.=

  5. Ipstenu says:

    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.

    • Ryan says:

      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.

  6. Ryan says:

    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.

  7. 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.
     

  8. Rarst says:

    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.

    • Tom says:

      “If the concept itself is flawed then where does all the happy rage come from?”
      Really?  All I can find is affiliate link reviews for any theme framework I have looked up.  All the happy rage is the money made from clicks (Yes, I know it is not much).  I think they suck to no end because WP itself is highly functional if you actually know how to use it, I find that frameworks break the uses of WP and overly complicate the system, add extra code, etc.  All this impacts the load time of the site, and with the new Panda update, that will negatively impact SEO.
       

      • Heiko says:

        My gosh, exactly my thoughts!

        It’s all just a big hype machinery from marketing professionals like Copyblogger and all their brainwashed developers and paid-review-bloggers, who crave to make a big buck within this ecosystem and therefore keep on circle-jerking about it’s wanna-be-advantages.

        I’ve purchased Genesis as well as Headway in high hopes of getting a headstart for developing my own themes. But after fiddling around with those for days, I found myself learning how these system work instead of making any progress on my site.

        On top of that, the support for Genesis is ridiculously bad. They won’t answer anything beyond minor modifications. And why is that?

        Because they can recommend a professional developer to do it for you. For cash!

        So, it’s a great business model, which traps you in for years and years to come, if you don’t pull the plug as soon as possible.

        End of story: I’ve just gone back to direct template editing and I don’t regret a thing. 

  9. 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.

  10. Fabrizio T. says:

    Very interesting point of view, I have to admit that I don’t need child’s features 99% of the times.

  11. 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.

  12. Norcross says:

    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.

  13. 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.

  14. Susan says:

    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.

  15. Oren says:

    I strongly agree with you. I always thought I’m the only one…

  16. Nathan B says:

    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.

  17. Neil Stoker says:

    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.  

     

  18. elmalak says:

    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?
     

  19. Rebecca Gill says:

    This is a good read, even though I totally disagree.  But diversity is that brings excellence.

    I’m a huge advocate of Genesis and the StudioPress theme.  I moved to Genesis and pushed our firm into creating custom child themes because I was tired of massive themes with too many options and/or really bad coders hacking the standard WP themes.  But I look at it from a firm standpoint and a business owner who has multiple coders working in tangent on projects or with clients over time.  The framework gives them a box to play in and rules to follow. Genesis does a great job of that.

    I think the point of security is important.  We’ve built a ton of Genesis sites and not once have they been hacked.  Their fast, secure, and the clients can manage them moving forward.  All reasons why I love WordPress and Genesis. 

  20. Tor says:

    Good article! When it comes to whether Child themes are good or bad, I agree that the operative sentiment is “it depends.”

    The first time I used a child theme was for a mid-sized eCommerce site which the client also wanted to be responsive (which I was still new to). I chose a good responsive theme, created a child, and endured no end of headaches and frustration and ended up wasting a huge amount of time.  BUT… that’s because I was creating massive changes to the theme (I was really just using the theme for it’s responsive nature).

    It would have been easy to just write off child themes, however I’m now working on a simple quick-turn site (also responsive) in which I’m really just changing colors, images and a few layout tweaks. I’m using a child theme and it’s saving me a HUGE amount of time.

    I’ll definitely use child themes again – I’m a big fan of them for simple changes, but if it’s a completely custom design, I’ll go with the fork method. 

  21. Pali Madra says:

    Very interesting discussion which has made me think from a different angle.

    Like most of the other commentators I believe that a child theme is a good way to make minor changes. Using child themes is a good start for anyone who has just started using WordPress and has limited knowledge about coding (PHP, MYSQL and WordPress). Those who intend to develop child themes should ensure that the parent theme was developed to be a parent theme.

    However, if you are looking to make big changes then perhaps using a ‘drop in code framework’ is the best option (meaning use a true theme framework to develop a new theme). For experienced developers it is best to develop a new theme than building a child theme.

    Justin’s comments have helped me to understand the difference between frameworks, parent themes and child themes.

  22. JoshB says:

    Real late to this thread. but I think its worthy of mentioning.

    The BIGGEST reason not to use these frameworks…SECURITY

    I am today dealing with my second major security breach on my server due to a theme framework. A theme should flat out not have security issues. It is completely ridiculous! I have seen a site with genesis lead to a full security breach and now I’ve seen one with the Hybrid framework get hacked.

  23. Ben says:

    WTF is a child theme? J/K, I hate them too. Themes are themes and should be edited directly as a theme. I don’t have time for child themes.

Leave a Reply




If you want a picture to show with your comment, go get a Gravatar.

More in News & Views, Themes (3 of 86 articles)