107 Responses

  1. Nathan Rice
    Nathan Rice Published |

    Sounds like it would be more fittingly packaged as a plugin, upon which a Parent Theme would depend (and perhaps gracefully degrade?). That way, it can be auto-updated using the standard WP upgrade mechanism.

    Since, in PHP, dependency has nothing to do with directory structure, having it separate, rather than included in the theme file, would be the logical thing to do, no?

    Reply
    1. Chip Bennett
      Chip Bennett Published |

      I have to agree with the suggestion that a “drop-in” Theme framework is less-than-ideal. Not only does the Theme developer have to keep the parent Theme updated, but also then has to ensure that the Framework version remains up to date.

      What is *really* needed is a solution that allows for the Framework to stay updated.

      But, I still don’t completely understand the benefit gained by developing a Theme based on a Framework? Is it standardization of Theme hooks and functions? Something else?

      Reply
    2. Ryan
      Ryan Published |

      +1 for the plugin idea.

      Users could download a “theme”, and if they want to add all the funky “Hybrid Core” features, they can install the plugin on top. That way users have an option between a complex framework powering their parent theme and a super skinny theme.

      Reply
      1. Ryan
        Ryan Published |

        Hybrid may be an awful theme minus the features, but that doesn’t mean a theme couldn’t be made which functioned fine without the features, but worked even better with it.

        A bonus of the user developing from a “Hybrid core plugin” is that if the users theme were never updated, they could still get the updates for the plugin and so gain new features as they were added. They wouldn’t be tied to the developer of their parent theme doing the upgrades.

      2. Ryan
        Ryan Published |

        One of the problems I can see with releasing it as a plugin, is that it could tie you down to providing too much backward compatibility to support themes which weren’t updated to accommodate changes in the framework. Whereas locking it into the theme places the onus of updating onto the theme developer.

        Most updates (in plugin form) would be meaningless to users unless they were bug fixes.

        I guess that depends on the changes. If you added a new shortcode, or improvements to the widgets/interface, then those changes would be automatically rolled in via the plugin.

        Either way, I’d likely to use the new framework and am quite pumped about seeing it out in the world :D

  2. Benjamin Cahill
    Benjamin Cahill Published |

    This sounds absolutely amazing! I would much rather build ‘real/parent’ themes based on Hybrid rather than making child themes that sometimes break when updating the parent theme (Hybrid).

    I can’t wait for this to come out. Thanks for your fantastic work!

    Reply
  3. paul
    paul Published |

    If I understand well, you’re taking the route of, say, the type of frameworks such as codeigniter, etc…makes sense really.

    Reply
  4. paul
    paul Published |

    PS: you need some “Share this post” buttons here ;)

    Reply
  5. Denis
    Denis Published |

    I think, this step is not a good idea. Adding another layer to this: Website -> WordPress -> Themes -> Framework -> Child theme will confuse people. Majority of people don’t understand completely the framework/child theme idea and you want to add another layer. Whatever you say for the Hybrid, at the end it is a Framework. Now you want to add another layer – Child Theme Framework ( Parent Theme). Imo, it is a better idea to provide hotfixes for the updated Child Themes and build the child theme the way that updated version will not effect the html/css output, where the customizations actually are made.

    Reply
    1. Jacques
      Jacques Published |

      Sounds great in priciple, Justin – thanks in advance…

      The (arguebly) added complexity is presumably a necessary evil – and the audience is presumably capable…

      Regards
      j

      Reply
  6. Stupid Spammer
    Stupid Spammer Published |

    Deleted by the administrator. Instead of marking this as spam, I need to keep it to to preserve the comment order and hierarchy. Seems like a WordPress bug.

    Reply
    1. Kevinjohn Gallagher
      Kevinjohn Gallagher Published |

      I think this is my favourite bit of spam ever.

      Reply
      1. paul
        paul Published |

        yeah baby!

  7. Adam W. Warner
    Adam W. Warner Published |

    @Kevinjohn Gallagher,

    Wholeheartedly agreed. It’s just so darn positive;)

    @Justin,

    Great write up on the differences, and the complex issue here.

    Reply
  8. WordPress Frameworks, Parent Themes, and Child Themes…oh my! - Learning WordPress with WP Modder
  9. LukeBream
    LukeBream Published |

    Your solution seems like a good one. It has a positive impact for hybrid in terms of bringing in more “sophisticated” theme developers into the hybrid community who have all the benefits of a solid architecture and clear blueprint for theme development to follow that is tried and tested following your years of experience in this area.

    On a slightly seperate note it has often struck me how “cheap” the hybrid support is when I compare it with all the other monthly / anual expenses that my online life incurs !

    As the hybrid community grows I can imagine it becoming increasing difficult for you to maintain the amazing support level that you have always offered. There may simply not be enough hours in the day.

    Returning to my firts point about bringing in theme developers whom are creating themes on the hybrid arcitecture you have a ready made source of additional expertise who could potentialy share some of the workload.

    One method you could adopt for this might be as follows….

    Change the pricing model for hybrid support perhaps to include the following

    1. An cheap introductory 7 day support for say $5 which provides a low barrier to entry and gets people through the door and experiencing how good the support is. It also gets them on your mailing list so if they dont take up the “full support” option at the end of the trial you can email them over period of time to encourage them in future.

    2. Then offer the normal support as it is at the moment but at a higher price $49 per year for example.

    3. Support your theme developer community financially by creating an affiliate program that meant they they got paid say $5 or $10 per month for each end user they brought to the hybrid paying support forum. (might you not also offer this out to end users too ?)

    4. Activly encourage these experienced and technical theme developers to join in providing the support to the community which would reduce your workload in this area.

    Justin, just some thoughts ! But above all I would like to thank you for all the amazing work that you do. And the tireless hybrid support that you give me !!

    Skywalker

    Reply
    1. LukeBream
      LukeBream Published |

      stupid me ! I just read back through my comment – should be $5-$10 for each referred member rather than per month !!

      Reply
  10. Reinar
    Reinar Published |

    Very explanatory article Justin.

    Considering all elements including but not limited to the database and WordPress itself, then what is WordPress? Would it be the ‘engine’ or would that not be the actual ‘framework’?

    Reply
  11. Reinar
    Reinar Published |

    An additional thought – We must somehow ensure transparency towards end-users. i believe it’s highly important that all speak the same language, know what we are working with, what to update etc.

    Reply
  12. BrianK
    BrianK Published |

    Justin, what are the main features you anticipate people will weigh to decide whether to build a parent theme or child theme? Menu location? Front page setup?
    Built in widgets?

    Reply
  13. Jayvie Canono
    Jayvie Canono Published |

    Justin, reading through your post, I’m a little nostalgic about the earlier days of WordPress theming. Back then, things were so simple: you put up a parent theme, and hoped that someone likes it. Instead of trying to write a few thousand words on the subject, I guess what I’m trying to say is that the line between “theme” as a visual design and “theme” as “a bunch of plugins that aren’t really plugins” has been blurred so much it’s almost ridiculous.

    So few drop-in Parent Themes are released with just widget definitions and core functions anymore, and yet for so many years we went along just fine and were able to design sites quite well without a bajillion new functions in the functions.php file.

    This old dog is frustrated. That’s pretty much what my comment amounts to.

    Reply
  14. Brad Potter
    Brad Potter Published |

    Anything that makes the developer’s job easier is most welcome. Look forward to checking it out Justin.

    Reply
  15. Michael
    Michael Published |

    Looks like a good system for you personally, but you may have lost the battle at large for the word “framework.” Seems like everyone’s using it these days as a synonym for “Big, Advanced Parent Theme.”

    That said, given how much I’ve learned from you by digging through Hybrid’s files in the past, I look forward to Hybrid Core and hope to make a theme or two with it.

    Reply
  16. John James Jacoby
    John James Jacoby Published |

    It might be worth mentioning that a true ‘grandchild’ theme simply doesn’t exist, and isn’t possible with the current codebase unless you code a theme to include CSS or JS from an existing source outside of the parent and child.

    We run into a similar situation with BuddyPress, where we recommend making child themes run off of the ‘bp-default’ theme. If you have a custom theme, obviously that won’t really work as expected, so we developed the Template Pack plugin to help assist with converting an existing theme into a proper ‘bp-default’ child theme. But, if you wanted to inherit CSS, JS, and HTML from both ‘bp-default’ and Hybrid, you’re stuck in a rut and need to get your hands dirty.

    I think this is a circumstance where parent/child themes satisfy 98% of WordPress users, but it’s the 2% that see the caveats and need to tip-toe around them.

    Reply
  17. The Frosty
    The Frosty Published |

    I would love to see an alpha copy for testing.

    Also there are ways to update the internal framework when nested inside “the/a” parent theme, I’m actually looking into this for a project.

    Reply
  18. satotaka
    satotaka Published |

    Hi, justin.

    I can’t wait to test the Hybrid Core bata copy.
    Can I reprint this article to my blog after translation into Japanese?

    Reply
  19. Devin Walker
    Devin Walker Published |

    Hi there Justin,

    Let me say that this article cleared up a whole lot for me and I thank you for this… the idea of parent/child themes is a bit of a head scratcher for many and I think you hit the nail on the head with this one.

    Reply
  20. Fuad
    Fuad Published |

    Hi Justin, do you release kind of independent software like codeigniter for your framework php language? it’ll be interesting to hear update for this awesome idea

    Reply
  21. Egyptological
    Egyptological Published |

    I’m very keen on this idea, thanks Justin

    I’ve used Hybrid to develop a theme which I will use on all my sites, but of course I want them all to be slightly different: no two sites are identical. I’m getting round the problem by testing for specific style sheets etc but it would be much neater to make my theme a parent rather than a child.

    I use very little – I think – of the Hybrid theme other than the core so this really suits me.

    Reply
  22. Ryan
    Ryan Published |

    @Justin – Brilliant post.

    I thought maybe you had given up on releasing the framework as it’s own entity, but thankfully it seems not :)

    This is exactly the sort of tool I’ve been look to use for a while now. Thanks for continuing with the project and I can’t wait to dig into it and hopefully use it in a few of my own projects.

    Reply
  23. Rich
    Rich Published |

    This is neat. I just hope it doesn’t delay that awesome forum plugin for a year too. That’s what I keep checking back on for updates.

    Reply
  24. Community links: Useful graphics edition | WPCandy
  25. Basilakis
    Basilakis Published |

    Hey Justin!

    Just 2 quick questions by me, for what i whould love to see from a framework.

    1) Could we use template system for custom post types? For example, if we develop a custom post type named Movies, could we also make a template called movies.php?

    2) Comment form, would be an extended template system?

    Reply
  26. JohnnyPea
    JohnnyPea Published |

    Finally somebody discussed this. Thanks ;)

    Reply
  27. Matt
    Matt Published |

    Looking forward to the release of Hybrid Core. I think it’s a great idea to allow developers to “package” the core functionality/logic of Hybrid in their own parent theme. Thanks for your hard work and offering the fruits of your labor to us all. Can’t wait to give it a try – how’s it coming along?

    Reply
  28. Help me understand the GPL so I do this right
  29. Základná kostra pre vaše témy « WordPress.sk
  30. Why I only use Theme Hybrid
    Why I only use Theme Hybrid at |
  31. Rebuilding Spigot with Hybrid Core | Spigot Design
  32. Jauhari
    Jauhari Published |

    But, many site has said that you Hybrid Theme is Framework

    http://www.problogdesign.com/wordpress/a-comparison-of-6-popular-wordpress-frameworks/
    http://www.wptavern.com/comparisons-between-most-popular-theme-frameworks

    But, overall I am agreed with our explanation

    Reply
  33. Featured WordPress Theme: Hybrid - WordPress, Multisite and BuddyPress plugins, themes, news and help – WPMU.org
  34. Roundup of thoughts on what 2011 should hold for WordPress | WPCandy
  35. Are You Using Child Themes Correctly? | Equal Web Creative
  36. Cozy Child Theme
    Cozy Child Theme at |
  37. Grandchild themes and optimal network architecture | WordPress Stack Exchange Monitor
  38. Our philosophy on WordPress themes
    Our philosophy on WordPress themes at |
  39. Oren
    Oren Published |

    This is a great article! Take this from a WordPress theme/plugin developer.

    Reply
  40. Greg Turner
    Greg Turner Published |

    Thanks for this thorough explanation of the various terms. I had always thought the word ‘framework’ referred to a parent theme that was loaded up to the gills with options in the dashboard. Now, using this word as Justin advises, is there a better term for such parent themes that have options up the whazoo? Incidentally, I just purchased exclusive membership into Theme Club.

    Reply
  41. Parent theme, child themes, and frameworks
  42. Wordpress Developer Tools
    Wordpress Developer Tools at |
  43. A New Year, A New Theme Shop | Theme Foundation
  44. Free WordPress Frameworks for Designing Your Own Child Theme
  45. Allon
    Allon Published |

    Hi Justin,

    Your writing is amazing, if I decide to use Hybrid as a framework then I would sign up for support based on the fact that it is obvious that you can explain things very clearly :)

    I am new to this whole framework thing and just started developing my own themes and therefore am looking into using a framework, mainly in order to ensure my themes cotain all wp functionality and maybe start of with a few extra features like a good color picker, logo upload, and anything else. I checked out a ton of frameworks and started tackling the child themes before getting here. It is obvious now that as a developer, child theme is not the way to design a theme and I would go about it by developing a parent theme so that users can just download theme instead of needing to download both parent and child.

    My question about Hybrid is, is this possible? Do I just install the Hybrid theme and edit it or do I need to download Hybrid core? Do I download Hybrid core and add template files to it? I am a bit confused. Just setting it up it doesnt seem to work and I get php errors. Maybe I just need to be pointed to a link that explains starting off with Hybrid-core and info regarding using it as a standalone theme.

    Thanks!

    Reply
  46. Allon
    Allon Published |

    Thanks for the reply, but I tried that and need to be a paid member from what it looks like and want to try the framework out before doing so.

    Maybe you should offer just some started tutorials for non members?

    Anyway, it seems I worked it out, hybrid-core – I can install and then create template files and use it as a base for developing. Installing theme hybrid would give me all the features of hybrid-core with a fully developed parent theme that I could customize and use as a base.

    Is that correct?

    Reply
    1. Norman Bird
      Norman Bird Published |

      I downloaded the framework. nice that you provide it for free, but for someone not familiar with your hybrid core, its kind of useless without an explanation of how to use it. Even install it. And asking for payment before seeing documentation seems…weird marketing like or something.

      Reply
      1. Syed
        Syed Published |

        I agree with Justin on this, and if you need to see the tutorials you should pay. And as far as I know its not expensive (compared to how much money you will be making by building rapidly using awesome “Hybrid Core” Framework. I am not a big fan of frameworks (still not a 100% fan), but I started using “Hybrid Core” about 3 weeks ago, and believe me or not its awesome to use, and as far as learning is required there are lots of free parent themes available on the web to download and explore, what can be more better then the code in hand then reading bunch of tutorials (just kidding ;)). But if you want free learning then you will have to go through the code exploration way.

        Note: There are even several parent themes from Justin on wordpress.org, and they helped me learn a lot.

        Thanks Justin for such an awesome “Hybrid Core” gift to the wordpress community.

  47. WordPress Theme vs Framework vs Child Theme
  48. David Abramson
    David Abramson Published |

    Hi Justin,

    Thank you for the simple explanation :)

    I’m very new to the idea of frameworks, parent, and child themes and I actually just built my first site using a child theme from the Genesis framework so it’s good to know a little bit more about how the site works.

    I was wondering about the grandchild themes because it looks like they have released at least one update for the child theme I’m using (Executive). Does that means if I modify the style.css or anything else from that theme, if they decide to update it again, all my customizations will be lost?

    Thanks again for the clear picture!
    -David

    Reply
  49. Grandchild themes - solving a problem to a bad architecture : Post Status
  50. Customising Wordpress Themes-Child vs Framework | HooPmedia
  51. The Exhaustive ManageWP Guide to WordPress Theme Frameworks
  52. Samantha
    Samantha Published |

    Hello,
    Sorry if this is not the right forum but I’m looking for some advice/opinions.

    I am on day 3 of trying to figure out WordPress. I have three websites designed in CoffeeCup Visual Site Designer I would like to transfer to WordPress, but I’m confused about whether i need a framework or not. I don’t have coding experience other than a 3 months web design class I took 4 years ago, but I’m pretty sure I can figure anything out with the right set of video tutorials : ). I thought I would use WhiteBoard because it is free, but their videos are not free and it’s not even clear to me if the LifeGuard videos are specifically for WhiteBoard or just WordPress in general. I really don’t mind taking the time to learn if it will be better in the long run, but I’m kind of discouraged because after activating WhiteBoard I don’t see in the Dashboard where to changes the CSS or even how to make the layout wider.
    I’m not a developer and I have no plans of designing sites professionally, so do I really need to learn a framework or could I just use Twenty Twelve? And if I do that is creating a child theme recommended? This is my current site to give you an idea of what I’m looking to create: naturalbeginningsnj.com I’m switching to WP because we want to incorporate a blog, ecommerce, and CoffeeCup does not work from my Mac.

    Thanks to any who respond!

    Reply
  53. On WordPress themes and frameworks : Post Status
  54. A Theme Framework, Child Themes, & Grandchild Themes - WP Smith
  55. Selecting a WordPress theme | momentary.eu
  56. Aith
    Aith Published |

    Hello Justin!

    Though this is an old post of yours, I remember reading it back when you first published it. It really gave me something to chew on despite my more surface-level knowledge of WordPress at the time and years later, I found myself remembering this post which is why I am putting forth my thoughts into a Comment (and inquiry related to your post’s discussion) for you.

    If you have the time, I would really appreciate a thought from you as it was this post in particular that really got me thinking, but I also understand that you’re busy and simply may not have the extra time.

    That said:

    When I first read this post, I was a real newbie to WordPress development and I thought to myself, “Wow, this makes a lot of sense, but I don’t think I’ll ever get to a point where I would be using a Framework structure to build a Parent theme because I’m still trying to wrap my mind around Child themes.”

    But then was then and now is now and… well.

    Long story short, I -think- I need to finally ‘graduate’ to building Parent themes rather than Child themes, but I also feel like I am a bit ‘stuck’ in terms of being really ready to move up.

    I’m not a very PHP-savvy person, but in spite of this, I’ve moved past simple styling changes and adding the occasional lines of vanilla functions-related coding to doing template structural overhauls, adding in custom Pages, and adding more than just a few lines of functionality-related coding.

    Basically, my Child themes have now become advanced Child themes that are almost completely unrecognizable from their Parents and accordingly, I think I have reached a critical mass point where I really ought to ‘graduate’ to building Parent themes instead.

    But because of my limited PHP-related knowledge and sometimes-confusion over WordPress hooks and the like, I also feel like I’m not yet ‘ready’ to do so.

    To make an analogy:

    In a world of construction, I would see myself as an architect (the literal structuring system of a whole website) and as an exterior and interior designer (the ‘looks’ and layout of a whole website)… but I wouldn’t be the one who designed the software required to draw up blueprints to spec and I’m not the one who would be able to take care of the electricity and plumbing.

    In WordPress terms, I like to build and then make pretty and though I would like to also be able to handle the figurative plumbing and electricity, that just isn’t my forte (though I am completely willing to learn).

    If I understood (and understand) your thoughts correctly as expressed in this post and if I did my homework right, working off of something like the Hybrid Core could give me the flexibility of building my own Parent theme while also letting said Parent theme stay updated in parallel alongside WordPress itself via the Hybrid Core/core Framework internal architecture.

    Something like that sounded – and sounds – really appealing to me and I guess my thoughts boil down to this: Am I ready to do this? And, any words of guidance?

    Take care and thank you in advance for any thoughts,

    Aith

    Reply
  57. Steven-Sanders
    Steven-Sanders Published |

    My only desire for the incorporation of grandchild themes would be within the setting of a one-person Website Design Company, who builds custom website for clients.

    To decrease overhead and time spent on maintenance as Wordpress core files get updated, we utilize a base “blank canvas” type of theme that has a large and already existing community of developers that work together to keep it up-to-date and fix bug issues.

    We build a child theme that contains various “Generic” changes and additions that we utilize across every custom website we develop for a client.

    Then we develop “grand-child” themes that contain customizations that are very specific to each website that we build for individual clients.

    That way, for every client we take on, we, by default, load the “blank canvas” theme and the “generic” child theme, which gives us a standard starting point based on our company’s development and design practices. Then all of our time spent on building their custom website is done within the “grand-child” theme only.

    If any major updates happen to the parent theme, our biggest focus in updating our client’s website happens in one place (our “Generic” child-theme). So if we have 100 clients, we don’t have to worry about any huge modifications across 100 different website. Basically, keeping their website up-to-date as well as building the website in general becomes considerably less time-consuming, allowing us to take on more work at lower rates.

    The way we have chosen to implement this currently is to create website specific customizations within sub-folders in our child theme, and utilize a wp-admin interface to select which sub-folder we want to implement for that website from a drop-down “select box”. This page in wp-admin is only accessible by users having the permission to view it.

    My question to you:

    Based on your experience, would this be best handled by having the “grand-child” theme capability, or by continuing to handle it the way we currently do?

    Reply
  58. Misconceptions about the Hybrid Core framework

Leave a Reply

By submitting a comment here you grant this site a perpetual license to reproduce your words and name/Web site in attribution.

Please use your real name or a pseudonym (i.e., pen name, alias, nom de plume) when commenting. If you add your site name, company name, or something completely random, I'll likely change it to whatever I want.

css.php