WordPress and Child Themes

As you have probably seen

WordPress signWordPress version 4.4 was just released the other day

Hopefully everything went well with the upgrade. With the release of version 4.4 there will probably be upgrades coming for many of the themes and plugins etc.. Upgrading themes can be a stressful time, especially if you have a lot of customization.

This topic came up for me not too long ago. I wanted to make a change on the page where my posts reside. If you have looked at it you will notice that I have a two column with the right sidebar layout for this page. I didn’t like the single column look for my posts, but in order to do this there had to be some code changed in the editor. Not in the customizer, where you can put snippets of code to make certain changes. This coding had to be done directly in the code for the Theme itself.

These are the kinds of changes that can be lost in the upgrade of a theme, even if you activate a child theme while it is being done. And I found myself with some questions. So I exchanged a couple emails with the developer of Ignite Plus, Ben Sibley.

Although, I have developed sites in WordPress for many years I am certainly not an expert on WordPress.  It’s one thing to know how to build and optimize a site, being a programmer or Professional web developer is quite different. Anyway, after a few emails back and forth with Ben, I think I must have asked the right question, at least I think so, because I got the answer that I thought that I was looking for.

This is a quote from Ben.

When Ignite Plus, or any other theme is active, WordPress will only use the code in that theme, and not any others that are installed. When a child theme is active, WordPress will use both the “parent” theme and the currently active child theme. The child theme is run in addition to the parent theme.

The code added to the child theme’s functions.php works similarly too, if added to the bottom of Ignite Plus’ functions.php file. However, this brings us to the reason for child themes: to protect your customizations from updates. When you update Ignite Plus to a new version, all of its files on your server are replaced with the files from the new version. Normally, this works fine, but if you have customized the files in any way, those same customizations will not be in the distributed version of Ignite Plus, and your customizations will be erased. This can be disastrous because those changes can’t be restored unless you have a recent backup. The child theme provides a space to customize Ignite Plus while still allowing you to receive new updates.”

“if you’re going to be customizing the site it would be easiest to always run the child theme. Any CSS added to Ignite Plus’ stylesheet can be copied and pasted into the child theme instead. Because the child theme’s CSS is loaded after the parent theme, the selectors in the child theme will override the same selectors in the parent theme.”

If you want to read about a bunch of coders that are discussing this, there has been an ongoing topic for about a year and a half on WordPress.org about this very thing. You can find that topic here where they discuss Parent/Child Themes. Anyway after reading this and then another quote from Ben.

“The child theme will never receive an update. Think of it as your own development environment. You can have a different version of your child theme for each site you make. You could even setup a “boilerplate” child theme that you start with on all your new sites if there are customizations you always like to make to Ignite Plus. As long as Ignite Plus’ files remain unedited, you can benefit from the updates and still customize it as much as you’d like via a child them”

ignite-plus-ad

Just a little plug for Ben. And remember I am Not an affiliate for Compete Themes

After reading all this and giving it some thought, I decided that I would move all my sites over to the child themes and off the parents. And of course Ben came through again for me and sent me a link to this Plug-In. This is a customizer Export/Import Plugin. If you make the same decision that I did ( and I would suggest that you do ) If you have any questions it is ways best to talk to the support team for whichever theme you are running. If you go grab this plugin it will let you move any ( most ) customization from the Parent Theme over to the Child Theme. You can get the plugin here – Export/Import Plugin

It worked quite well for me and I did have quite a few snippets of code in the customizer and it moved everything. So I was pretty happy.

I would really take a look at this issue. The bigger your site gets the harder it is to make these kind of changes. If you have any doubts, contact the support people that make the Theme that you run your site on.

For me I can tell you, that from now on, my sites will all run on the Child Theme and never again will I have to give a seconds thougt to my theme upgrades from now on.

Take Care!

Jeff