Introduction
If you’ve ever customized a WordPress theme only to lose your changes after updating it, you know how frustrating it can be. That’s where child themes come in.
A child theme allows you to make modifications without affecting the original theme. Even if the parent theme gets updated, your changes remain safe.
In this beginner-friendly guide, you’ll learn what a child theme is, why you need one, and how to create a WordPress child theme step by step in 2025.
What is a Child Theme in WordPress?
A child theme is a theme that inherits the functionality, design, and features of another theme (called the parent theme) while allowing you to safely modify or add new features.
Key Characteristics of a Child Theme:
- Dependent on a parent theme.
- Uses its own folder and files.
- Can override specific styles or templates.
- Protects your customizations during theme updates.
Example: If you’re using the Astra theme, you can create an Astra Child Theme and safely customize it.
Why Use a Child Theme?
Main Benefits:
- Preserve Customizations – Updates won’t overwrite your changes.
- Safe Experimentation – Test new code without breaking the main theme.
- Extend Functionality – Add custom templates or PHP functions.
- Better Organization – Keep all modifications in one place.
Without a child theme, editing the main theme’s files directly is risky and not recommended.
Methods to Create a Child Theme
There are two main ways to create a child theme in WordPress:
- Manually (via code & FTP/File Manager)
- Using a Plugin (automatic generation)
We’ll cover both methods.
Method 1: Manually Create a Child Theme
Step 1: Create a New Folder for the Child Theme
- Connect to your site via FTP or use File Manager in your hosting cPanel.
- Navigate to:
/wp-content/themes/
- Create a new folder named after your theme. Example:
astra-child
Step 2: Create a style.css File
Inside your child theme folder, create a file named style.css and add this code:
/*
Theme Name: Astra Child
Theme URI: https://example.com/astra-child
Description: A child theme for Astra
Author: Your Name
Author URI: https://example.com
Template: astra
Version: 1.0.0
*/
/* Custom CSS goes below this line */
Important:
- The Template value must exactly match the parent theme folder name (e.g.,
astra
). - You can add your own CSS below the header.
Step 3: Create a functions.php File
Now create a file named functions.php inside the child theme folder. Add the following code:
<?php
// Enqueue parent and child theme styles
function astra_child_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') );
}
add_action( 'wp_enqueue_scripts', 'astra_child_enqueue_styles' );
This ensures both the parent and child styles load correctly.
Step 4: Activate the Child Theme
- Go to WordPress Dashboard > Appearance > Themes.
- Find your new Astra Child theme.
- Click Activate.
Congratulations 🎉 You now have a working child theme!
Method 2: Create a Child Theme with a Plugin
If coding feels intimidating, use a plugin.
Recommended Plugins:
- Child Theme Configurator
- WP Child Theme Generator
Steps with Child Theme Configurator:
- Install and activate the plugin.
- Go to Tools > Child Themes.
- Select your parent theme.
- Click Create New Child Theme.
- Activate it under Appearance > Themes.
Easy, safe, and beginner-friendly.
How to Customize Your Child Theme
Now that you’ve created a child theme, here’s what you can do:
Add Custom CSS
Modify your style.css file to change fonts, colors, and layouts.
Override Template Files
Copy a template file from the parent theme into the child theme folder and edit it. Example:
- Copy
header.php
from parent → paste into child theme → edit safely.
Add Functions
In functions.php, add new WordPress functions or hooks.
Example: Add custom code to show featured posts on the homepage.
Use Custom Templates
Create custom page templates like page-custom.php
for unique layouts.
Best Practices for Child Themes
- Always keep the parent theme updated.
- Only override necessary files.
- Keep your child theme organized.
- Use version control (like Git) for tracking changes.
- Test on a staging site before applying to live site.
Common Mistakes to Avoid
- Editing parent theme files directly.
- Forgetting to enqueue parent styles.
- Not naming the child theme folder correctly.
- Installing too many unnecessary customizations.
Conclusion
A child theme is a must-have for anyone serious about customizing their WordPress site. It provides flexibility, safety, and control over your website design and functionality.
Whether you create it manually or with a plugin, having a child theme ensures your modifications remain intact during updates — keeping your site professional, secure, and future-proof.
Protect your customizations — follow this guide to create a child theme in WordPress today and design with confidence!