WordPress Child Theme: What It Is & How to Create One

Have you ever spent hours customizing your WordPress theme? Then one update wiped everything out. Frustrating, right?

Here is the good news. A wordpress child theme solves this problem completely.

In this guide, I will show you what a child theme is and why you need one. Then I will walk you through every step to create your own – manually, using FTP. No coding experience required.

Let us get started.



What Is a WordPress Child Theme?

Think of a child theme as a safe copy of your main theme.

The main theme is called the parent theme. It lives in its own folder. The child theme lives in another folder and borrows everything from the parent – design, features, functions.

But here is the magic. When you change something in the child theme, the parent theme stays untouched.

So what does this mean for you?

  • You can update the parent theme without fear
  • Your custom CSS and code stay safe
  • You can undo mistakes easily

A wordpress child theme does not replace your main theme. It works on top of it, like a protective layer.

Most beginners think child themes are complicated. They are not. In fact, they make WordPress safer and easier to manage.


Why Use a WordPress Child Theme?

Let me give you three simple reasons.

1. Updates become stress-free
When the theme author releases a security or feature update, you can click “update” without losing anything you changed.

2. Your work stays organized
Instead of hiding custom code inside the parent theme (where it gets messy), everything lives inside your child theme. Clean and simple.

3. Mistakes are easy to fix
If something breaks, just deactivate the child theme. Your site immediately goes back to the parent theme. No panic.

Still not convinced?

Imagine you spend a weekend tweaking colors, fonts, and layouts. Then Monday morning, WordPress shows an update notification. Without a child theme, you either skip the update (unsafe) or install it and lose your weekend work.

With a wordpress child theme, you get both: the update and your changes.

That is why professional developers and casual site owners both use child themes. They just work.


How to Create a WordPress Child Theme Manually (via FTP)

We will now build your first child theme. Do not worry. I will guide you step by step.

What you need before starting:

  • An FTP program (I recommend FileZilla – it is free)
  • Your server login details (host, username, password)
  • A text editor (Notepad or VS Code works fine)

Ready? Let us go.

Step 1 – Connect to your server via FTP

Open FileZilla. Enter your server details. Click “Quickconnect”.

The left side shows your computer files. The right side shows your server. Navigate to wp-content/themes/.

Step 2 – Create a child theme folder

Inside the themes folder, create a new folder. Name it something like mytheme-child. Use only lowercase letters and hyphens. No spaces.

Step 3 – Create the style.css file

Inside your new folder, create a file named style.css. Open it in your text editor. Paste this exact code:

/*
Theme Name: My Child Theme
Template: mytheme
*/Code language: CSS (css)

Change mytheme to the exact folder name of your parent theme. If your parent theme folder is twentytwentyfive, write twentytwentyfive.

Save the file. Upload it to your child theme folder.

Step 4 – Create the functions.php file

Create another file called functions.php. Paste this code:

<?php
function child_theme_styles() {
    wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
    wp_enqueue_style('child-style', get_stylesheet_uri(), array('parent-style'));
}
add_action('wp_enqueue_scripts', 'child_theme_styles');Code language: PHP (php)

This code tells WordPress to load the parent CSS first, then your child CSS. Order matters.

Save and upload this file too.

Step 5 – Activate your child theme

Go to your WordPress dashboard. Click Appearance > Themes. You will see your child theme listed.

Hover over it. Click “Activate”. Your site looks exactly the same – but now you are using a wordpress child theme.

Step 6 – Test it

Open your site in a new browser tab. Everything looks normal? Good.

Now add a test line to your child theme’s style.css:

body {
    background-color: #f0f0f0;
}Code language: CSS (css)

Refresh your site. See a light gray background? It works. You can delete that line now.


The functions.php File and How to Load Styles Correctly

Many people get confused here. Let me simplify.

The functions.php file in your child theme does not replace the parent theme’s functions.php. Both work together.

WordPress loads the parent functions.php first. Then it loads the child version.

This is important because of style order.

If your child CSS loads before the parent CSS, your changes may not show up. The parent theme pushes them back.

That is why we use this code:

wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('child-style', get_stylesheet_uri(), array('parent-style'));Code language: PHP (php)

The array('parent-style') part tells WordPress: “Wait for the parent CSS, then load mine.”

You can also use functions.php to add menus, support featured images, or load JavaScript. But for now, just focus on getting styles right. The rest comes later.


How to Override Templates (single.php, header.php, etc.)

What if you need to change the structure of a page? For example, add something to the header or remove the date from posts?

You need to override template files. A wordpress child theme makes this easy.

The rule of override

WordPress always looks in the child theme first. If it finds a template there, it uses it. If not, it falls back to the parent theme.

So to change a template:

  1. Copy the file from the parent theme
  2. Paste it into the same folder path inside your child theme
  3. Edit it however you want

Example: changing single.php

Let us say you want to modify how individual blog posts look.

Step 1 – Locate single.php
Go to your parent theme folder via FTP. Find single.php in the root folder.

Step 2 – Copy it
Download a copy to your computer.

Step 3 – Copy to your child theme
Upload that file to the same location inside your child theme folder. If it was in the root of the parent, put it in the root of the child. If it was inside /templates/, recreate /templates/ in your child theme.

Step 4 – Edit
Open the file in a code editor. Change the HTML or PHP as you need. Save.

Step 5 – Upload
Send the modified file back to your child theme folder. Refresh your site. The changes appear immediately.

Common templates you can override

  • header.php – site header
  • footer.php – footer
  • sidebar.php – sidebar
  • single.php – single post
  • page.php – static pages
  • archive.php – category and tag pages
  • search.php – search results

One warning: some modern themes organize templates inside folders like /partials/ or /template-parts/. Always check the parent theme structure first, then mirror it in your child theme.


What About Parent Theme Updates?

This is the number one question. And it is the main reason to use a wordpress child theme.

Can you update the parent theme safely?
Yes. Absolutely.

What happens during an update?
WordPress replaces every file inside the parent theme folder. The child theme folder stays completely untouched. WordPress never touches it.

What happens to your site after the update?
Your site continues using the child theme. The custom CSS stays. Your modified templates stay. Nothing is lost. And you still get the parent theme’s new features, security fixes, and performance improvements.

The only small risk

Sometimes a parent theme author changes a function name or a template structure. If you overrode that template or used that function, your child theme might need a small adjustment.

But this is rare. And when it happens, the author usually mentions it in the update notes.

How to update safely

  1. Read the update notes – look for changes to templates or functions you use
  2. Test first – if you have a staging site, update there
  3. Backup everything – always backup before any update
  4. Update the parent theme – click the button without fear
  5. Check your site – open a few pages and confirm everything works

A wordpress child theme is not magic. But it is the safest way to customize WordPress without losing your work during updates.


Common Mistakes When Creating a Child Theme (FAQ format)

Let me answer the most frequent questions. This will help you avoid common traps.

Why does my child theme not show up in the dashboard?

You probably forgot the Template: line in your style.css.
Solution: Open your style.css and make sure it has this structure:

/*
Theme Name: My Child Theme
Template: exact-parent-folder-name
*/

My child theme shows up, but the site has no styles. Why?

Your functions.php is missing or incorrect.
Solution: Create a functions.php with this code:

<?php
function child_theme_styles() {
wp_enqueue_style(‘parent-style’, get_template_directory_uri() . ‘/style.css’);
wp_enqueue_style(‘child-style’, get_stylesheet_uri(), array(‘parent-style’));
}
add_action(‘wp_enqueue_scripts’, ‘child_theme_styles’);

I wrote CSS in my child theme, but it does not work. What went wrong?

Two possible issues.
First – specificity. The parent theme may use very specific selectors. Your CSS needs to be equally or more specific.
Second – order. Your functions.php must load parent CSS first, then child CSS. Use the code above.
Can I copy the entire functions.php from the parent theme?
No. Never do this.
If you copy the whole file, WordPress tries to load the same functions twice. This causes a fatal error.

Solution: Only write new functions or modifications in your child theme’s functions.php. Leave everything else to the parent.

Can I copy the entire functions.php from the parent theme?

No. Never do this.
If you copy the whole file, WordPress tries to load the same functions twice. This causes a fatal error.
Solution: Only write new functions or modifications in your child theme’s functions.php. Leave everything else to the parent.

Can my child theme folder name have spaces?

Better not. Use only lowercase letters and hyphens.
Example: my-theme-child works perfectly. My Theme Child can cause problems.

I overrode a template, but my site ignores it. Why?

The folder structure does not match the parent theme.
WordPress looks for templates in the exact same path. If the parent has /templates/single.php, your child must also have /templates/single.php.
Solution: Check the exact location in the parent theme. Mirror that structure inside your child theme.

My child theme works fine. Can I delete the parent theme?

No. Never delete the parent theme.
A wordpress child theme needs the parent theme to work. Without it, your site breaks. The parent is required. The child lives from it.


Final Thoughts and Call to Action

Creating a wordpress child theme feels like a big step at first. But after you do it once, it becomes second nature.

Here is the truth: it is always worth it. Even for one small CSS change. Even for one line of code.

Why? Because you never know when the next theme update will arrive. And when it does, you want to install it without hesitation. A child theme lets you do that.

Start slowly. Use a test site if you have one. Make one change at a time. Build your confidence.

Soon, creating a wordpress child theme will be automatic. And you will thank yourself every time you click that “Update” button.

Ready to start today?

You have everything you need. The steps are here. The code is here.

Now it is your turn. Open your FTP. Create the folder. Write the style.css and functions.php. Activate the child theme. And start customizing without fear.

If you get stuck along the way, come back to this guide. Read slowly. Try again. It works.


Bookmark these official resources. They help with specific questions.

These resources help with more advanced questions. Save them to your favorites. They will come in handy.

Follow SOS-Admins on Google

SOS-Admins is your ultimate source for the latest updates, exclusive guides, and news. Don t miss our upcoming content, add us to your favorites and stay connected with the community on Google!