Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I've been trying to commission a freelancer to make me a custom website and hit a roadblock when I said I wanted a parent theme. The freelancer strongly preferred to make a child theme based on his self-made, free go-to theme that he updated frequently.

Justin Tadlock did a great writeup on Frameworks? Parent, child, and grandchild themes?, and succinctly explains the problem with selling child themes:

When a theme developer creates a child theme, things become problematic because that child theme might eventually need an update. If you’re a theme developer and are building a child theme with a 20kb functions file and five or six custom templates, I can assure you that you’re doing it wrong. I’ve even had to tell myself this.

I'm convinced that this wouldn't be a problem if the developer had some experience with common practices for maintenance of multiple themes and WordPress theme deployment. Literally hundreds of WordPress theme shops seem to have no problem maintaining large volumes of parent themes. What's their special sauce?

share|improve this question

1 Answer 1

up vote 2 down vote accepted

While I agree with Justin Tadlock on a lot of things, I strongly disagree with him on this.

The reason parent/child themes exist is that there's a lot of common functionality used across websites. Instead of re-inventing the wheel every time, it's better to build from a solid base that has been tested by hundreds of developers and used on tens of thousands of websites.

From a security perspective, as long as you know your parent theme is secure (StudioPress hires Mark Jaquith, lead developer of WordPress and lead of the security team, to review it), then you only have to be concerned with the 10-20% of custom code you write in your child theme. It drastically reduces security risks.

From a cost perspective, a developer like me can reduce development time by 4-5x by using a theme framework like Genesis. I'm able to charge $2,500 for a website because of all the time Genesis saves me in development. When I build a theme from scratch (whether to be standalone or serve as its own parent theme), the minimum cost rises to $10,000 and is typically in the $20-50k range.

From a developer perspective, using a theme framework developed by several top developers and used by hundreds of other developers ensures that every small feature has had more time dedicated to solving it the right way than you would ever have to spend on it. For a typical website we can't justify spending more than an hour setting up breadcrumbs, but I can guarantee over 50 hours of development time has gone it in Genesis. And due to Genesis' implementation, it takes me less than a minute to implement breadcrumbs in whatever way we want.

The only time I recommend developing a standalone theme or a new parent theme for a client is if they're looking to build their own base theme which can then be deployed across dozens of sites, with each site having its own customizations (through a child theme). And even then, it can be more cost effective to use a parent theme like Genesis and have your "base" theme be a child theme. You can make minor CSS customizations using Jetpack's Edit CSS feature (or find a plugin that does the same thing), and you can make functionality customizations through a site-specific core functionality plugin.

I encourage you to find the right solution to your problem. You might need a child theme, or you might need a parent theme developed. But one of your considerations should be cost, because by not leveraging a parent theme / framework you'll increase required development time, and therefore cost.

My own opinion of the differences between a parent theme and a framework also differs with Justin. He says they are not the same thing. I say they can be the same thing. 1. A parent theme is a theme which is extended through a child theme. The child theme is the site-specific customizations, while the parent theme contains network-wide code or generalized code useful on many sites. 2. A theme framework is a strong base from which to build your theme.

When they are combined, you have a solid base that is continually being improved. When your framework is not your parent theme (ex: underscores), you're "frozen in time", stuck with the code it had when you originally forked it. If new improvements are made to the framework, you don't receive them. For this reason, non-parent theme frameworks are typically really lean so they don't benefit much from future updates.

share|improve this answer
    
Thank you for that elaborate answer Bill, you're the man. I actually got in touch with Justin as well and he told me that for a scenario like this, a one-off job, the two of you are largely in agreement. His post was mainly referring to publicly released themes. That was actually gonna be the case here as well, but I forgot to point that out. So, my reasons for asking this question might have been a bit misguided, but I'm still curious how the bigger themeshops who deal in parent themes manage to keep their heads above water, though I'm guessing a big part of the answer is "frameworks". –  Erlend May 8 '13 at 8:42

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.