
Every time you update your WordPress themeA WordPress theme is a set of files that determine the design and layout of a website. It controls everything … More, any customizations you’ve made directly to the themeA WordPress theme is a set of files that determine the design and layout of a website. It controls everything … More files are wiped out. A WordPress child themeA child theme is a WordPress theme that inherits the functionality and styling of another theme, referred to a… More solves this problem permanently. A child theme inherits all the styles and functionality of its parent theme — but stores your customizations separately, so updates never destroy your work. In this step-by-step 2026 guide, you’ll learn how to create a WordPress child theme manually, with a pluginA plugin is a software component that adds specific features and functionality to your WordPress website. Esse… More, and using the new Full Site Editing (FSE) approach for block themesA WordPress theme is a set of files that determine the design and layout of a website. It controls everything … More.
Table of Contents
What Is a WordPress Child Theme?
A WordPress child theme is a theme that derives its templates, styles, and functionality from a “parent” theme. When WordPress loads your site, it reads the child theme first. If the child theme has a custom version of a template file or CSS rule, WordPress uses the child’s version. For everything else, it falls back to the parent theme.
This inheritance system is what makes child themes so powerful. You can change any part of your theme’s look or behavior — without ever touching the parent theme’s files. When the parent theme releases an update, you apply it safely, and your customizations remain untouched in the child theme directory.
Child themes are officially supported and recommended by WordPress.org. They work with classic themes (like Astra, GeneratePress, and Kadence) and, since WordPress 6.1, with Full Site Editing block themes as well.
Why You Need a Child Theme (And What Happens Without One)
If you edit a theme’s CSS or PHP files directly — without a WordPress child theme — here’s what happens when that theme updates:
- The theme update overwrites your custom CSS with the original files
- Any PHP modifications you made to template files are erased
- Custom functions added to functions.php are lost
- Your site may look completely different — or break entirely
Theme updates happen frequently. Security patches, compatibility fixes, and feature additions mean most popular themes update multiple times per year. Without a child theme, every update is a gamble. With a child theme, updates are completely safe.
Additionally, a WordPress child theme lets you:
- Override any parent template file without modifying the original
- Add custom CSS that persists through updates
- Add custom PHP functions to functions.php without conflict
- Maintain a clean separation between your code and the theme developer’s code
Method 1: Create a WordPress Child Theme Manually
Creating a child theme manually requires access to your server via FTP, SFTP, or your host’s file manager. You need to create a new folder and two files. This method works for any classic (non-block) WordPress theme.
Step 1: Create the Child Theme Directory
Navigate to wp-content/themes/ on your server. Create a new folder with a name that identifies it as a child theme. By convention, append -child to the parent theme’s folder name. For example, if your parent theme folder is astra, name the child theme folder astra-child.
The folder name must be all lowercase with no spaces. Hyphens are fine.
Step 2: Create style.css
Inside your new child theme folder, create a file called style.css. This file must contain a specific header comment that tells WordPress this is a child theme and which parent it inherits from. Here is the required format:
/*
Theme Name: Astra Child
Theme URI: https://example.com/astra-child/
Description: Astra Child Theme
Author: Your Name
Author URI: https://example.com
Template: astra
Version: 1.0.0
Text Domain: astra-child
*/
The critical line is Template: astra. This must exactly match the folder name of the parent theme — not the theme’s display name, but the actual directory name. If the parent theme is in a folder called twentytwentyfive, then Template must read twentytwentyfive. Getting this wrong is one of the most common child theme pitfalls (more on that below).
You can add your custom CSS below this header comment block — it will be loaded after the parent theme’s styles.
Step 3: Create functions.php
In the same child theme folder, create a file called functions.php. The minimum required content for a properly functioning WordPress child theme is the parent stylesheet enqueue. Add the following:
<?php
add_action( 'wp_enqueue_scripts', 'my_child_theme_enqueue_styles' );
function my_child_theme_enqueue_styles() {
wp_enqueue_style(
'parent-style',
get_template_directory_uri() . '/style.css'
);
wp_enqueue_style(
'child-style',
get_stylesheet_directory_uri() . '/style.css',
array( 'parent-style' )
);
}
This code enqueues the parent theme’s stylesheet first, then the child theme’s stylesheet with the parent as a dependency. This ensures the correct load order — your child styles override the parent cleanly. Note: some modern themes (like Astra and Kadence) load their styles via PHP rather than style.css, in which case you may only need to enqueue the child style. Check your parent theme’s documentation.
Step 4: Activate the Child Theme
Log into your WordPress dashboardIn WordPress, the Dashboard is a central hub for managing a website’s content and settings. It is the first sc… More and go to Appearance → Themes. You should see your new WordPress child theme listed. Click Activate. Your site will look identical to before — the child theme inherits everything from the parent. You’re now ready to safely add customizations.
Method 2: Create a Child Theme with Child Theme Configurator
If you’d prefer not to manually create files, the Child Theme Configurator plugin by Lilaea Media is the most reliable tool for the job. It’s actively maintained, free on WordPress.org, and has over 700,000 active installations as of 2026.
Step 1: Install Child Theme Configurator
Go to Plugins → Add New and search for “Child Theme Configurator”. Install and activate the plugin by Lilaea Media.
Step 2: Configure the Child Theme
Navigate to Tools → Child Themes. In the “Parent Theme” dropdown, select the theme you want to create a child of. The plugin will automatically detect all installed themes.
Key settings to review:
- Child Theme Directory: The plugin will suggest a name (e.g., parenttheme-child). You can change this.
- Stylesheet handling: Choose whether to use @import or enqueue. The enqueue method (wp_enqueue_scripts) is recommended for 2026 — @import is slower and deprecated in some contexts.
- Copy menusIn WordPress, a menu is a collection of links that are displayed as a navigation menu on a website. Menus are … More, widgetsA widget is a small block of content that performs a specific function and can be added to certain areas of a … More, and other settings: Check this if you want your current Customizer settings preserved in the child theme.
Step 3: Create and Activate
Click Create New Child Theme. The plugin generates the folder, style.css, and functions.php automatically, then gives you the option to activate immediately. This is the fastest path to a properly configured WordPress child theme.
Method 3: Child Themes for Block (FSE) Themes in 2026
With the Full Site Editor (FSE) now stable in WordPress 6.x, block themes like Twenty Twenty-Five (the current default) use a different architecture. Instead of PHP templates, they use HTML block templates and theme.json for design tokens. Creating a WordPress child theme for a block theme follows the same basic principle — but with some differences.
How Block Theme Child Themes Work
For a block theme child theme:
- The
style.cssheader is still required with the correctTemplatevalue - You do not need to enqueue the parent stylesheet via functions.php — block themes handle style loading differently
- To override design tokens (colors, typography, spacing), create a
theme.jsonfile in your child theme. WordPress merges child theme.json settings on top of the parent’s - To override a block template, copy it from the parent’s
/templates/folder into a/templates/folder in your child theme and modify it - To override template parts (header, footer), copy them from
/parts/into your child’s/parts/directory
Example: Override Colors via theme.json in a Child Theme
Create a theme.json file in your child theme folder with just the properties you want to override:
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 3,
"settings": {
"color": {
"palette": [
{
"name": "Primary",
"slug": "primary",
"color": "#1a73e8"
}
]
}
}
}
WordPress will merge this with the parent’s theme.json, so you only need to specify what you’re changing. This is the cleanest way to customize block themes safely in 2026. For more on theme customization, see our guide on how to change your WordPress theme.
Common WordPress Child Theme Pitfalls (And How to Avoid Them)
Even experienced developers make these mistakes when creating a WordPress child theme. Here’s what to watch for:
1. Wrong Directory in the Template Header
The Template: line in style.css must match the parent theme’s folder name, not its display name. The theme “Astra” lives in a folder called astra. If you write Template: Astra (with a capital A), WordPress cannot find the parent and will display an error. Always check the exact folder name in wp-content/themes/.
2. Missing functions.php or Incorrect Enqueue
Without functions.php or without the enqueue hook, the parent stylesheet doesn’t load. Your child theme will display with zero styling — a completely broken layout. Always include the enqueue function shown in Method 1 Step 3, or use the Child Theme Configurator plugin which handles this automatically.
3. Placing the Child Theme in the Wrong Directory
The child theme folder must be inside wp-content/themes/ — not inside the parent theme’s folder. It should sit at the same level as the parent, not inside it. For example: wp-content/themes/astra/ and wp-content/themes/astra-child/ should both be direct children of the themes directory.
4. Not Using a Child Theme on a Live Site
Some users set up a WordPress child theme on a staging environment but forget to activate it on the live site before making customizations. Always confirm which theme is active in Appearance → Themes on both environments. If you need a reliable staging environment built into your hosting, consider managed WordPress hosting with one-click staging.
5. Copying Entire Parent Theme Files Unnecessarily
Some users copy every parent template file into the child theme “just in case.” This defeats the purpose — you lose the benefit of parent theme updates because your copies never update. Only copy a file to the child theme when you specifically need to modify it.
Frequently Asked Questions
Does a WordPress child theme slow down my site?
No. A properly built WordPress child theme adds negligible overhead — typically an extra HTTP request for the child stylesheet, which is tiny. The performance impact is imperceptible to visitors. The right hosting environment with LiteSpeed caching will deliver identical speeds with or without a child theme.
Can I use a child theme with Elementor or other page builders?
Yes. Elementor, Beaver Builder, Divi, and most pageIn WordPress, a page is a content type that is used to create non-dynamic pages on a website. Pages are typica… More builders work perfectly with child themes. In fact, it’s best practice to use a child theme even when building with a page builder, so your PHP customizations and any non-builder theme modifications are protected from updates. For Elementor-specific guidance, see our Elementor tutorial.
What’s the difference between a child theme and a starter theme?
A child theme inherits from an existing theme and is designed to customize it. A starter theme (like Underscores or GeneratePress’s blank child) is a minimal, bare-bones theme intended as a starting point for building a completely custom theme from scratch. Use a child theme when you like your parent theme and want to extend it; use a starter theme when you’re building something entirely new.
Do I need a child theme if I only use the WordPress Customizer?
Customizer settings (colors, fonts, widgetA widget is a small block of content that performs a specific function and can be added to certain areas of a … More placements set via the WordPress Customizer) are stored in the databaseA database is an organized collection of data stored and accessed electronically. It is a crucial component of… More, not in theme files — so they survive theme updates without a child theme. However, if you add custom CSS via the Customizer’s “Additional CSS” box, or if you ever plan to modify PHP template files, a child theme is essential.
Can I create a child theme of a child theme?
No. WordPress does not support grandchild themes (a child of a child). If you need to extend a child theme further, add your additional customizations to the existing child theme’s files.
Ready to Upgrade Your Website?
If you’re looking for fast WordPress hosting and done-for-you updates, check out our hosting packages by clicking the button below. With managed WordPress hosting from GigaPress, your child theme customizations are protected by daily automated backups — so even if something goes wrong, you can restore in seconds.





