What is a WordPress child theme and when to use one
A WordPress child theme inherits templates, styles and behavior from a parent theme to enable safe, update-resistant customizations. Use one to override…

A WordPress child theme is a theme that inherits templates, styles and behavior from another theme (the parent) and lets you make safe, update‑resistant customizations. Documentation consulted: WordPress Theme Developer Handbook and Learn.WordPress lesson, consulted September 27, 2026.
What is a WordPress child theme?
A child theme is a separate theme folder that names a parent theme and provides only the files you change. The parent supplies the default templates and assets; the child supplies overrides or additions. This preserves custom work when the parent theme receives updates.
Minimal required items for a functional child theme are a style.css in the child folder with a header that declares at least Theme Name and Template (the parent folder name). A functions.php is commonly included to enqueue styles and add theme‑level PHP. The WordPress Developer Handbook describes these basics and the loading order for child and parent files.
Minimal example header for style.css (place inside /wp-content/themes/my-child/style.css):
/* Theme Name: My Child
Template: parent-folder-name */
Why child themes exist — benefits
Child themes exist to separate customizations from the parent theme so updates to the parent do not overwrite changes. That is the core maintenance benefit: the parent can be updated securely while the child keeps site‑specific code and styling.
Other concrete benefits:
These patterns are recommended in official WordPress documentation and developer tutorials that cover child theme best practices.
When you should create a child theme (use cases)
Create a child theme when you need to override parent PHP templates. Example: copy parent single.php into the child and edit it there; WordPress will use the child copy instead of the parent file.
Create a child when you must add or alter theme functions that integrate into the theme lifecycle. Remember: a child theme’s functions.php is loaded in the theme load order so hooks behave predictably.
Create a child for substantial CSS or structural changes that cannot be achieved via the Customizer, Additional CSS, a site editor or a plugin. If changes are only small cosmetic tweaks, a Customizer Additional CSS block or a site‑specific plugin may suffice instead.
Create a child if you intend to distribute or reuse the customizations across sites. Packaging a child isolates modifications from site‑specific plugins and keeps intent clear.
Cases where a child theme is likely unnecessary:
How to create a basic child theme
Files to create in /wp-content/themes/my-child/:
Recommended pattern to enqueue parent + child styles (place in the child theme’s functions.php):
function my_child_enqueue_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’, ‘my_child_enqueue_styles’ );
Do not use @import in style.css to load the parent stylesheet; official guidance favors enqueueing via functions.php for performance and reliability. Ensure the Template header exactly matches the parent theme folder name; an incorrect value prevents the child from linking to its parent.
Special considerations for block themes / Full Site Editing (FSE)
Block themes and Full Site Editing shift many visual controls into theme.json, template parts and the site editor. Because of this, many design changes that formerly required a child theme can now be handled in the editor or via theme.json settings.
Child themes remain usable with block themes, but their role differs. Use a child for cases where PHP template overrides are needed, or when bundling custom theme.json modifications that must live alongside templates. Evaluate per project: the site editor, pattern system and theme.json may remove the need for a child in many modern setups.
Documentation for block themes and FSE in the Theme Handbook and Learn.WordPress resources explains the alternatives and current best practices for FSE projects.
Common mistakes and troubleshooting
Parent stylesheet not loading is often caused by a Template header mismatch or incorrect enqueue order. Checklist to diagnose:
Functions.php behavior can confuse developers: a child theme’s functions.php runs before the parent’s, so hook timing matters. Use add_action and priority carefully to avoid unexpected behavior.
CSS specificity issues: child styles may still be overridden if the parent uses more specific selectors or later enqueues. Prefer correct selectors and enqueue order over widespread use of !important.
For deeper troubleshooting, consult the official developer docs and community support threads indexed by WordPress.org; those sources cover common errors and remedies in detail.
Alternatives to child themes
Site-specific plugin:
Customizer Additional CSS or a CSS plugin:
Block theme site editor and theme.json:
Quick checklist before you start
What we did not establish
Sources
- [1]WordPress Theme Developer Handbook — Child Themes — consulted September 27, 2026 — developer.wordpress.org
- [2]WordPress Developer Docs — Main Stylesheet — consulted September 27, 2026 — developer.wordpress.org
- [3]WordPress Developer Docs — Theme Functions — consulted September 27, 2026 — developer.wordpress.org
- [4]WordPress.org Documentation — Work with Themes — consulted September 27, 2026 — wordpress.org
- [5]Learn.WordPress — Child Themes lesson — consulted September 27, 2026 — learn.wordpress.org
- [6]Kinsta — How to Create a WordPress Child Theme — consulted September 27, 2026 — kinsta.com
Related guides
Daniel Hart
Daniel covers WordPress themes and page builders for Olympian Themes. He installs every theme he ranks on a clean test site, measures what it loads, and writes down what the documentation does not say.
Updated on September 27, 2026