4340 posts ThemeForest Reviewer
  • Has referred 1+ members
  • Has sold $40,000+ on Envato Market
  • Has collected 50+ items on Envato Market
  • Member of the Envato Team
+12 more
Ivor Envato team says

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.

Edit Themes

1028 posts
  • Has referred 500+ members
  • Has sold $500,000+ on Envato Market
  • Has collected 50+ items on Envato Market
  • Elite Author: Sold more than $75,000 on Envato Market
+6 more
ThemeBlvd says

Thanks Ivor, I’ll definitely look into this before publishing the next WP theme I’m finishing up.

1383 posts
  • Has been part of the Envato Community for over 4 years
  • Has referred 10+ members
  • Has collected 10+ items on Envato Market
  • Sells items exclusively on Envato Market
+1 more
wpCanyonThemes says

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.

1028 posts
  • Has referred 500+ members
  • Has sold $500,000+ on Envato Market
  • Has collected 50+ items on Envato Market
  • Elite Author: Sold more than $75,000 on Envato Market
+6 more
ThemeBlvd says

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?

3451 posts
  • Elite Author: Sold more than $75,000 on Envato Market
  • Has sold $750,000+ on Envato Market
  • Located in United States
  • Helps us moderate the forums
+10 more
sevenspark Moderator says

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 :)


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.

1383 posts
  • Has been part of the Envato Community for over 4 years
  • Has referred 10+ members
  • Has collected 10+ items on Envato Market
  • Sells items exclusively on Envato Market
+1 more
wpCanyonThemes says

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.

1028 posts
  • Has referred 500+ members
  • Has sold $500,000+ on Envato Market
  • Has collected 50+ items on Envato Market
  • Elite Author: Sold more than $75,000 on Envato Market
+6 more
ThemeBlvd says


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?

4340 posts ThemeForest Reviewer
  • Has referred 1+ members
  • Has sold $40,000+ on Envato Market
  • Has collected 50+ items on Envato Market
  • Member of the Envato Team
+12 more
Ivor Envato team says

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/


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.

1383 posts
  • Has been part of the Envato Community for over 4 years
  • Has referred 10+ members
  • Has collected 10+ items on Envato Market
  • Sells items exclusively on Envato Market
+1 more
wpCanyonThemes says

@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 :)

548 posts
  • Has been part of the Envato Community for over 4 years
  • Has referred 1+ members
  • Has collected 100+ items on Envato Market
tonvie says

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 :)

by
by
by
by
by
by