86 Responses

  1. Nathan Rice
    Nathan Rice August 16, 2010 at 12:16 pm | | Reply

    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?

    1. Chip Bennett
      Chip Bennett August 16, 2010 at 8:19 pm | | Reply

      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?

    2. Ryan
      Ryan August 18, 2010 at 9:44 pm | | Reply

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

      1. Ryan
        Ryan August 18, 2010 at 11:24 pm |

        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 August 19, 2010 at 4:42 am |

        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 August 16, 2010 at 2:02 pm | | Reply

    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!

  3. paul
    paul August 16, 2010 at 9:47 pm | | Reply

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

  4. paul
    paul August 16, 2010 at 9:48 pm | | Reply

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

  5. Denis
    Denis August 17, 2010 at 12:53 am | | Reply

    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.

    1. Jacques
      Jacques August 17, 2010 at 2:11 am | | Reply

      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

  6. Stupid Spammer
    Stupid Spammer August 17, 2010 at 4:28 am | | Reply

    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.

    1. Kevinjohn Gallagher
      Kevinjohn Gallagher August 17, 2010 at 6:21 am | | Reply

      I think this is my favourite bit of spam ever.

      1. paul
        paul August 17, 2010 at 8:56 am |

        yeah baby!

  7. Adam W. Warner
    Adam W. Warner August 17, 2010 at 7:36 am | | Reply

    @Kevinjohn Gallagher,

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

    @Justin,

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

  8. LukeBream
    LukeBream August 17, 2010 at 8:12 am | | Reply

    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

    1. LukeBream
      LukeBream August 17, 2010 at 8:19 am | | Reply

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

  9. Reinar
    Reinar August 17, 2010 at 8:24 am | | Reply

    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’?

  10. Reinar
    Reinar August 17, 2010 at 8:30 am | | Reply

    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.

  11. BrianK
    BrianK August 17, 2010 at 10:10 am | | Reply

    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?

  12. Jayvie Canono
    Jayvie Canono August 17, 2010 at 10:30 am | | Reply

    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.

  13. Brad Potter
    Brad Potter August 17, 2010 at 1:31 pm | | Reply

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

  14. Michael
    Michael August 17, 2010 at 4:02 pm | | Reply

    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.

  15. John James Jacoby
    John James Jacoby August 17, 2010 at 9:13 pm | | Reply

    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.

  16. The Frosty
    The Frosty August 17, 2010 at 11:02 pm | | Reply

    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.

  17. satotaka
    satotaka August 17, 2010 at 11:58 pm | | Reply

    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?

  18. Devin Walker
    Devin Walker August 18, 2010 at 1:31 am | | Reply

    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.

  19. Fuad
    Fuad August 18, 2010 at 9:18 am | | Reply

    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

  20. Egyptological
    Egyptological August 18, 2010 at 7:52 pm | | Reply

    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.

  21. Ryan
    Ryan August 18, 2010 at 9:51 pm | | Reply

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

  22. Rich
    Rich August 18, 2010 at 10:08 pm | | Reply

    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.

  23. Basilakis
    Basilakis August 30, 2010 at 3:00 pm | | Reply

    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?

  24. JohnnyPea
    JohnnyPea August 31, 2010 at 10:49 am | | Reply

    Finally somebody discussed this. Thanks ;)

  25. Matt
    Matt September 14, 2010 at 11:34 am | | Reply

    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?

  26. Why I only use Theme Hybrid November 26, 2010 at 12:01 am |
  27. Jauhari
    Jauhari December 17, 2010 at 1:38 pm | | Reply

    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

  28. Cozy Child Theme February 22, 2011 at 9:01 am |
  29. Our philosophy on WordPress themes June 10, 2011 at 10:15 am |
  30. Oren
    Oren June 10, 2011 at 7:07 pm | | Reply

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

  31. Greg Turner
    Greg Turner June 26, 2011 at 2:53 pm | | Reply

    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.

  32. Wordpress Developer Tools November 3, 2011 at 5:59 am |

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.