As we’ve covered before, a child theme is a modified version of an existing WordPress theme. But when is it appropriate to use a child theme and when is in unnecessary? Let’s take a look at some scenarios that might make a child theme a good idea for you.
Use a child theme when you want to customize a theme’s files
If you’re fluent in PHP, you may want to make changes to a theme file. For example, you can change the theme’s header by making changes to the theme’s
header.php file. Or, if you want to change the way blog posts look, you can modify the
single.php file. However, you will lose any changes you make whenever a theme updates, because it overwrites all the theme files.
With a child theme, you can create a separate copy of the files you want to change. WordPress knows to use the copy of the file in the child theme and only load the parent theme’s files if the file doesn’t exist in the child theme. This allows you to modify the files you want to modify without risking data loss, as a theme update doesn’t change child theme files.
Use a child theme if you want to add functionality to a theme
Maybe you’ve found the perfect theme but it’s missing something. Normally you’d install a plugin to add what you need, but if the issue is something specific to the theme, it’s best to add it to the theme files instead. Remember, plugins are universal, so you don’t want to use a plugin for something that wouldn’t work with every theme.
However, if the functionality you want to add doesn’t depend on the theme, create a plugin instead.
Use a child theme if you’re using a “framework” theme
Some themes are designed to be a barebones “framework” with the intention of utilizing child themes for customization. The Genesis framework is a prominent example. StudioPress provides 35 child themes with Genesis, which are essentially themes built on Genesis. The only downside to this approach is WordPress doesn’t currently support a “grandchild” theme, so you can’t create update-proof child themes if you’re already utilizing a child theme for a framework theme.