Exploring WordPress Frameworks and Child Themes

If you’ve been keeping up with Ian Stewart’s ThemeShaper blog this summer (if you haven’t, you should be looking deep within yourself to ask why not), you’ve seen loads of documentation for his WordPress framework, Thematic and the various child themes which inherit their power from Thematic’s mothership functionality.

Anyone who builds a quantity of WordPress sites throughout the year would be crazy to not already have their own baseline theme, much like anyone who re-uses the same dozen structural classes would be crazy not to deploy their own CSS framework for each project. Streamlining is a way of life when you’re charging by the hour.

But Thematic is more than just the groundwork. It’s also a handy way to keep the core theme functions isolated from from the child theme styling so they are easily updated with no damage to the site. It also offers a dozen options for widgetized regions, plus a library of custom hooks and filters. Sounds tricky, but this gives child-theme authors a wide range of options to incorporate or repurpose, all from within the functions.php file.

Why does this interest me? Because a year after the release of Mimbo 2.2, there have been nearly 70,000 downloads. If I were to release v2.3 tomorrow, that custom styling would be lost for many users with modded themes. But if I were to build a Mimbo parent theme and release 1-2 child themes, upgrading would be easy.

Another reason I’d like to try a parent-child scheme is for sites which redesign annually and want their Archives section to reflect that. The site I’m thinking of is The Virginia Film Festival, which I designed and built on WordPress, and which launched again just yesterday:


It’s built on a baseline stylesheet and baseline WordPress theme that I’ve been developing at Category 4 for the last year. It’s currently the foundation for probably 30 recent sites we’ve developed, and a major timesaver. But, the Va Film project is a little different.

Each year, the festival has a different theme, which obviously requires a new design. If you check out the Archives page, you’ll see it’s currently handled with static screenshots. Going forward, we’d like a more elegant way to let users explore the same content but with a different skin, aka, child theme. The parent theme would be a pretty generic layout similar to what you see on the homepage, minus the styling, with child themes called /2007/, /2006/, /2005/, and so on.

But couldn’t we just use one of the various theme-switching plugins available? We could, but 5 years from now when there are 15 different site designs, we want global changes to be painless – hence, the parent theme framework.

In any case, Ian’s explorations on the subject have inspired a lot of “aha!” moments among WP developers. It’s likely they will influence aspects of how new versions of WordPress handle parent-child relationships. Or maybe that’s happened already – WP 2.7 will allow child themes to override entire parent templates.

Don’t miss these related articles: