- Envato Staff
- Reviewer
- Community Moderator
- Venezuela
- Has been a member for 4-5 years
- Repeatedly Helped protect Envato Marketplaces against copyright violations
- Microlancer Beta Tester
- Sold between 10 000 and 50 000 dollars
- Exclusive Author
I notice a lot of buyers complaing about themes updates and how they lose all their customizations after you [author] update your theme, adding features, fixing bugs, etc. this is definitely a huge problem.
As some of you may know there’s an effective way and it’s a best practice to edit themes using Child Themes which is pretty easy to make, maintain and edit without touching the core files of the theme.
I’ve made a really quick video of how I think we should edit WordPress Themes using the Child Theme method.
PS: Let me know what you think. Feel free to use this video in your documentation.
- Author had a File in an Envato Bundle
- Author was Featured
- Bought between 50 and 99 items
- Exclusive Author
- Has been a member for 4-5 years
- Item was Featured
- Referred between 500 and 999 users
- Sold between 250 000 and 1 000 000 dollars
Thanks Ivor, I’ll definitely look into this before publishing the next WP theme I’m finishing up.
Great video Ivor 
And i completely agree, all customizations on a theme should be handled by creating a child theme.
But i would like to see this pushed even further, since i bet 99.9999% of the themes here (including those i created) don’t give the buyer ability to change functions from the functions.php file, only the ability to change the CSS .
Now, i’m not saying it should be obligatory for authors to make their themes that way that the buyer can alter the functions with a child theme, but just a nice little optional feature.
- Author had a File in an Envato Bundle
- Author was Featured
- Bought between 50 and 99 items
- Exclusive Author
- Has been a member for 4-5 years
- Item was Featured
- Referred between 500 and 999 users
- Sold between 250 000 and 1 000 000 dollars
Guys, I just have a couple quick questions…
1) In sort of referencing the example in the video, the user makes their own header.php file in their child theme by copying and pasting, and then making the desired changes. So, then the theme author makes some change to header.php in an update to the core files of the theme that is required to make something work somewhere else, the user updates the theme, and because their child theme and now modified header.php file don’t reflect the author’s changes, they’re going to get some error message possibly and have no idea how to fix it? Doesn’t that kind of put you in the same boat? Just wondering if I’m not understanding something there?
2) What’s the best way to actually package the theme and child theme in the TF download package? Generally, I include a theme-name.zip file inside my main ZIP the user can either upload via WP admin, or unzip and upload manually. So, would I include a second package called like theme-name-child.zip that they could additionally install if they wanted?
- Sold between 250 000 and 1 000 000 dollars
- Community Moderator
- Author was Featured
- Item was Featured
- Bought between 50 and 99 items
- Referred between 1000 and 1999 users
- Has been a member for 3-4 years
- Repeatedly Helped protect Envato Marketplaces against copyright violations
Great job, Ivor. I always try to explain this to buyers – this’ll be great. Maybe make this post sticky? I think a lot of buyers don’t even read the docs – where it is explained how to do this so they won’t lose customizations during updates – but maybe they’ll spot it here instead 
wpCanyonThemes said
Now, i’m not saying it should be obligatory for authors to make their themes that way that the buyer can alter the functions with a child theme, but just a nice little optional feature.
I agree that themes that implement the hook and filter system extensively are much more versatile for advanced buyers. I wonder if adding a product note like “This theme is highly extensible via hooks” (similar to the “Well Documented” note) might be useful for buyers looking for this type of functionality and encourage authors to work these practices into their themes.
ThemeBlvd said
Guys, I just have a couple quick questions…1) In sort of referencing the example in the video, the user makes their own header.php file in their child theme by copying and pasting, and then making the desired changes. So, then the theme author makes some change to header.php in an update to the core files of the theme that is required to make something work somewhere else, the user updates the theme, and because their child theme and now modified header.php file don’t reflect your changes, they’re going to get some error message possibly and have no idea how to fix it? Doesn’t that kind of put you in the same boat? Just wondering if I’m not understanding something there?
2) What’s the best way to actually package the theme and child theme in the TF download package? Generally, I include a theme-name.zip file inside my main ZIP the user can either upload via WP admin, or unzip and upload manually. So, would I include a second package called like theme-name-child.zip that they could additionally install if they wanted?
1) Dunno about this one, not an expert in child themes.
2) Well the buyer makes the child theme himself, no need to include it.
- Author had a File in an Envato Bundle
- Author was Featured
- Bought between 50 and 99 items
- Exclusive Author
- Has been a member for 4-5 years
- Item was Featured
- Referred between 500 and 999 users
- Sold between 250 000 and 1 000 000 dollars
wpCanyonThemes said
ThemeBlvd said
Guys, I just have a couple quick questions…1) In sort of referencing the example in the video, the user makes their own header.php file in their child theme by copying and pasting, and then making the desired changes. So, then the theme author makes some change to header.php in an update to the core files of the theme that is required to make something work somewhere else, the user updates the theme, and because their child theme and now modified header.php file don’t reflect your changes, they’re going to get some error message possibly and have no idea how to fix it? Doesn’t that kind of put you in the same boat? Just wondering if I’m not understanding something there?
2) What’s the best way to actually package the theme and child theme in the TF download package? Generally, I include a theme-name.zip file inside my main ZIP the user can either upload via WP admin, or unzip and upload manually. So, would I include a second package called like theme-name-child.zip that they could additionally install if they wanted?1) Dunno about this one, not an expert in child themes.
2) Well the buyer makes the child theme himself, no need to include it.
So, there’s nothing the theme author actually needs to do to make their theme “compatible” with child themes?
And including the theme-name-child.zip (with just a blank style.css and proper folder name all setup for them) and a little supporting documentation might also encourage buyers to use this method, as well?
- Envato Staff
- Reviewer
- Community Moderator
- Venezuela
- Has been a member for 4-5 years
- Repeatedly Helped protect Envato Marketplaces against copyright violations
- Microlancer Beta Tester
- Sold between 10 000 and 50 000 dollars
- Exclusive Author
Thanks a lot for the replies guys,
This video was initially for TF’s customers, the buyer need to make the child theme himself as Slobodan says.
@Jason
1) That’s a good question this is a nice article to understand a little bit more about it – http://themeshaper.com/modify-wordpress-themes/
ThemeBlvd said
So, there’s nothing the theme author actually needs to do to make their theme “compatible” with child themes? And including the theme-name-child.zip (with just a blank style.css and proper folder name all setup for them) and a little supporting documentation might also encourage buyers to use this method, as well?
That’s right, there’s nothing you have to do
and that sir is a good idea, pack your blank child theme and the buyer will be ready to go.
@themeblvd
Might encourage them but if they know nothing about it it might confuse them 
Nothing is needed to make your theme “child theme compatible” BUT only when it comes to CSS and templates changes, you do need to do a bit extra work to make your functions.php “child theme compatible”.
Style
Child theme style.css overwrites original style.css (that’s why you include the original style.css in the child theme style.css)
Templates
Child theme template file (header.php, index.php, single.php…) overwrites the original template file
Functions
Child theme functions.php does NOT overwrite the original functions.php, it’s just included at the top of the original. So to make your theme “compatible” for that you need to make your functions “pluggable” (i think that was the name), which means every functions should look like:
if(!function_exists('the_function_name')){
function the_function_name(){
//Do whatever the functions does
}
}
So when there is a function with the same name in the child functions.php file then there will be no nasty white screen “function already defined” errors and the original function will be replaced with the one from the child theme 
I haven’t read this whole thread but upgrades are definitely the worst part of theme purchasing. Half the time I wait to buy a theme no matter how great it is until the 2nd or 3rd update. You’re getting my money, just later than sooner 
Things are getting better. I think some defnitely depends on how the author arranges their files too. Admin panels are getting better about letting you export your settings too…
But I always dread the upgrades. Last night I did two. 1 upgrade took 5 hours even with file compare tools etc. (yeah my fault I didn’t document all the changes like I should have, I’m learning).
And then I do another update to the theme “Versatile” and it goes off without a frickin’ hitch! Maybe System32 had his files better separated?
So I think it’s somewhat author dependent. But anything you can do to make it easier for us chimps would be much appreciated and maybe the child thing is the answer! Ok, I’ll actually read this thread now 

