
Table of Contents
If you have been managing a WordPress site for any length of time, you have probably heard someone mention a WordPress child theme and wondered whether you need one, what it actually does, and why anyone would bother setting one up. The concept is simpler than it sounds. This guide explains it plainly — no developer jargon, no unnecessary complexity — and tells you honestly when a WordPress child theme matters and when it does not.
What Is a WordPress Child Theme?
A WordPress child theme is a theme that inherits all the design and functionality of a parent theme but lets you make customisations without modifying the parent theme’s files directly. Think of it as a transparent layer sitting on top of your existing theme. Changes you make to the WordPress child theme — edited templates, added CSS, overridden PHP functions — take priority over the parent theme’s equivalents. The parent theme itself remains completely untouched.
Technically, a child theme is a folder in your wp-content/themes directory containing at minimum two files: a style.css file with a header that declares which theme is the parent, and a functions.php file. Everything else you add is your customisation layer. The WordPress child theme can contain its own template files (header.php, footer.php, single.php) that override the parent’s versions for specific sections of the site, or it can contain nothing but CSS overrides and a few PHP functions — both are valid approaches.
Why a WordPress Child Theme Matters: The Update Problem
When a WordPress theme releases an update — for security patches, new features, or compatibility with new WordPress versions — installing that update overwrites all of the theme’s files with the new version. If you had edited any of those files directly — added CSS to the theme’s style.css, modified a template to change a layout, added a function to functions.php — those changes are gone. Every update wipes your customisations silently and completely.
This is not a theoretical problem. It is one of the most common ways Irish business owners lose months of incremental site improvements: a developer or the business owner themselves makes changes directly to the theme files, a plugin or theme update reminder gets clicked, and the customisations disappear. With a WordPress child theme, your changes live in entirely separate files that the parent theme update never touches. You can update the parent theme freely to get security patches and new features, and every single customisation you have made remains intact.
Any WordPress developer who edits a purchased theme’s files directly — without a child theme — is creating a maintenance problem for you. It is a non-negotiable best practice, not an optional extra.
When Do You Actually Need a WordPress Child Theme?
You need a child theme if you are using any third-party purchased or free theme — GeneratePress, Astra, Avada, OceanWP, Divi, or any theme from the WordPress repository — and you want to make any customisations to it that should survive updates. You also need one if a developer is making changes to your theme files, and if your site requires ongoing maintenance where theme updates will be applied.
You do not need a child theme if you are using a fully custom-built theme created specifically for your site. A custom theme is already yours — it has no parent to update independently. Our custom theme development service builds themes from scratch, which means the child theme question never arises. All customisations are part of the theme itself, version-controlled and fully yours.
You also technically do not need a child theme if you are making changes only through the WordPress Customiser, as those changes are stored in the database and survive theme updates. The child theme becomes necessary the moment you or a developer needs to edit theme files directly.
How to Create a WordPress Child Theme
The manual method: create a new folder in wp-content/themes/ with a name like your-parent-theme-child. Inside that folder, create style.css with the following header at the top:
/* Theme Name: Your Parent Theme Child
Template: parent-theme-folder-name
*/
Then create functions.php containing:
<?php
add_action( 'wp_enqueue_scripts', function() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
} );
Activate the child theme in WordPress > Appearance > Themes. That is the entire technical requirement. Everything in the parent theme continues to work. You can now add CSS overrides to the child theme’s style.css and PHP customisations to functions.php without touching the parent.
Alternatively, the Child Theme Configurator plugin automates this process and handles the enqueueing correctly — useful if you are less comfortable with file editing. Most managed WordPress hosts also allow you to create and edit theme files through their file manager without needing FTP access.
Child Theme vs WordPress Customiser
The WordPress Customiser (Appearance > Customise) stores design changes — colours, fonts, header settings, widget layouts — in the database rather than in theme files. These changes survive theme updates automatically, which is why the Customiser exists. For changes that can be made through the Customiser, you do not need a child theme. A child theme becomes necessary when you need to make changes that the Customiser does not expose: custom CSS beyond what the Additional CSS field supports, modified page templates, custom PHP functions, or changes to how specific post types display.
In practice, most sites that use a premium theme will eventually need both: the Customiser for design settings the theme supports officially, and a child theme for anything beyond those settings. The two approaches are complementary, not competing.
Custom Theme vs Child Theme: Which Is Better?
A child theme solves the update problem cleanly for purchased themes. But it is not the same as a custom-built theme, and the distinction matters for performance-conscious sites. A child theme is still constrained by the parent’s architecture — its CSS cascade, its JavaScript files, its page builder dependencies, its template structure. If the parent theme loads 400KB of CSS your site uses 10% of, the child theme cannot easily fix that. The parent’s performance ceiling becomes your ceiling.
A custom WordPress theme is built from scratch — designed for your specific business with only the code your site actually needs. No page builder overhead, no unused CSS, no inherited architectural decisions made for a generic audience. The trade-off is cost and time. For most small businesses on a reasonable budget, a well-chosen parent theme with a properly implemented child theme is the right balance. For businesses where performance is directly tied to revenue, or where the brand requires significant visual differentiation from any available theme, a custom WordPress theme is the better long-term investment.
Common Child Theme Mistakes
The most common problems I see with child themes on client sites: not enqueuing the parent stylesheet correctly (so the child theme loads without the parent’s CSS, breaking the layout); creating the child theme but then continuing to edit the parent theme’s files directly out of habit; not including a child theme version number in the style.css header, making updates harder to track; and using a child theme to store large amounts of functionality that should really be in a plugin (functionality that is not theme-dependent — custom post types, shortcodes, custom widgets — belongs in a plugin, not a theme).
Frequently Asked Questions
Will a WordPress child theme slow down my site?
No. A child theme adds negligible overhead — a few milliseconds at most for the additional file check. The only way a child theme slows a site is if the developer adds poorly written CSS or JavaScript to it. The structure itself has no meaningful performance cost.
Can I create a child theme for any WordPress theme?
Yes. Any WordPress theme can serve as a parent. Some theme frameworks — GeneratePress, Astra, Kadence — are specifically designed to be used with child themes and have documentation making the process very straightforward.
My developer edited the theme files directly. What should I do now?
Ask them to migrate those changes into a child theme before the next theme update. This is a standard operation for any WordPress developer and takes under two hours for most sites. If the developer is no longer available, the changes can be recovered from a recent backup and migrated by any competent WordPress developer.
Does a child theme affect the WordPress Customiser settings?
No. Customiser settings are stored in the database and are independent of which theme (parent or child) is active. Switching to a child theme of the same parent theme preserves all Customiser settings.
Can I have a child theme of a child theme?
No — WordPress does not support grandchild themes natively. If you need a second layer of customisation, it belongs in the same child theme or in a plugin.
Need a custom theme or child theme set up properly? Get in touch →
