
🔧 How to update a WordPress theme without losing your settings: a complete guide
You spent hours refining your theme: tweaking fonts, redesigning the header, adding custom styles for product cards. The site looks exactly the way you wanted. Then the "theme update available" notification appears, and after a single click all your changes vanish.
Sound familiar? This pain haunts everyone who has ever edited a WordPress theme directly without thinking about update protection. The good news: this problem is completely solvable, and you don't need to be a developer to do it.
Below is a step-by-step guide that works for any WordPress theme. From creating a child theme to safely testing updates on a live site.
💡 Quick overview:
- Learn why theme customizations disappear during updates and how WordPress stores changes
- Create a child theme in 5 minutes, from scratch or via plugin
- Transfer existing edits to the child theme without losing anything
- Set up backups and test updates without risking your site
Why theme settings get lost during updates
WordPress is designed simply: each theme lives in its own folder inside /wp-content/themes/. When you click "update," WordPress completely replaces the theme files with new versions from the repository. Everything you edited in style.css or functions.php of the old version gets overwritten permanently.
This behavior is not a bug but a feature. It ensures that after updating you get a clean, consistent version of the theme without accumulated "junk" from intermediate edits. The only problem is that WordPress doesn't know which changes you made versus what was in the theme originally.
Hence the main rule of theme customization: never edit parent theme files directly. Instead, all changes go into a separate entity called a child theme.
Child themes: how they work
A child theme is a lightweight layer on top of the parent theme. It inherits all the functionality and styles of the original but lets you override only what you need to change. When the parent theme updates, the child theme remains untouched, and your edits stay intact.
The principle is similar to layers in Photoshop: the base layer is the parent theme, and on top of it sits a transparent child theme layer. You draw on the upper layer, and when the lower one gets replaced, the upper one is preserved.
What you can put in a child theme:
- CSS rules (fonts, colors, spacing, responsiveness)
- Page templates and individual blocks:
header.php,footer.php, andsingle.php - Functional changes via
functions.php(registering widgets, custom post types, shortcodes) - Translations and text strings
Essentially, a child theme covers the vast majority of customization types that would otherwise send you digging into parent theme files.
Creating a child theme: step-by-step guide
The process takes no more than five minutes and requires only access to site files via FTP or your hosting file manager.
Step 1: create the folder
In the wp-content/themes/ directory, create a new folder. Name it like the parent theme with a -child suffix. For example, for the twentytwentyfour theme the folder would be called twentytwentyfour-child. This naming convention is not a strict requirement but a widely accepted practice that immediately clarifies which theme the child is connected to.
Step 2: connect styles with style.css
Inside the folder, create a style.css file with this header:
1 /* 2 Theme Name: Twenty Twenty-Four Child 3 Template: twentytwentyfour 4 */
Only two fields are minimally required: Theme Name (any unique name) and Template (the parent theme's folder name, exactly as on disk, case-sensitive). A mistake in Template and the child theme won't appear in the available themes list in the admin panel.
Step 3: inherit parent styles with functions.php
Create a functions.php file with the following code:
1 <?php 2 function child_enqueue_parent_styles() { 3 $theme = wp_get_theme(); 4 $version = $theme->parent() ? $theme->parent()->get('Version') : '1.0'; 5 6 wp_enqueue_style( 7 'parent-style', 8 get_template_directory_uri() . '/style.css', 9 array(), 10 $version 11 ); 12 } 13 add_action('wp_enqueue_scripts', 'child_enqueue_parent_styles');
This code does two things: it loads the parent theme's stylesheet and ties it to the version number. Tying to the version is critical: when the parent theme updates, the version number in the style URL also changes. Browsers and CDNs will see the new URL and clear the cache, so you won't get "broken" CSS because the browser keeps pulling an old cached version.
Step 4: activate
Go to WordPress admin → "Appearance" → "Themes." Find the child theme you just created by the name you specified in Theme Name and click "Activate."
After activation, WordPress will start using the child theme. The site will look exactly the same as with the parent theme because the child theme isn't overriding anything yet.
Transferring existing edits to the child theme
If you've already edited the parent theme directly, don't panic. Transferring edits to the child theme is done manually, but it's a one-time operation.
Here's the algorithm:
- Make a list of all parent theme files you changed. Usually it's
style.cssandfunctions.php, less often template files. - Copy only the modified code sections to the corresponding child theme files. Don't copy the entire file since that would overwrite future parent theme updates with old code. Take only what you added or changed.
- After transferring all edits, restore the original parent theme files from the repository (simply reinstall the theme or download a fresh copy).
If you accumulated many changes and aren't sure exactly what you modified, here's a tip: install the One Click Child Theme plugin (it creates a child theme in one click), then manually compare parent theme files with the original from the repository using a diff utility or an online comparison service. This way you'll see exactly which lines you added.
Alternative approaches: frameworks and plugins
A child theme is the primary and most flexible method, but other tools exist for safe customization.
Theme frameworks
If you're just choosing a theme and planning serious modifications, consider frameworks. The most well-known example is Genesis Framework from StudioPress. The idea is that the framework serves as an "eternal" parent theme, and you work in a child theme from day one. Genesis doesn't update chaotically; its updates are designed not to break child themes. The cost is $60 per year, but for those who earn money from websites, it's a justified investment.
Another option is the Total framework, which comes with a built-in Custom CSS field in the admin panel. For small styling tweaks, this might be enough without creating a child theme at all.
Plugins

If you'd rather not mess with theme files, some tasks can be offloaded to plugins:
- WP Template Overrides lets you selectively override templates without creating a child theme. Useful when you need to fix one specific template and creating a child theme feels like overkill.
- One Click Child Theme plugin creates a child theme right from the admin panel, no FTP needed. Perfect for your first experience with child themes: click a button and the structure is ready.
It's important to understand the limitations: plugins cover narrow scenarios. For systematic customization work, a child theme is still more reliable since it doesn't depend on third-party plugin updates and works even when you change active plugins.
Backups: insurance before updating
Whatever method you use, make a backup of your site before any theme update. It takes a couple of minutes but saves your nerves if something doesn't go according to plan.
Three levels of backup, from simple to robust:
- Manual backup via FTP. Download the theme folder and export the database through phpMyAdmin or WP-CLI (
wp db export). Free but requires discipline; easy to forget before updating. - Automatic backup with plugins. Free options from the WordPress directory handle daily file and database copying. Among premium solutions, Jetpack VaultPress Backup (real-time cloud backups) and Solid Backups (formerly BackupBuddy, one-click restore) stand out.
- Backup at the hosting level. Most managed WordPress hosts make daily copies automatically. Check with your provider how quickly you can restore from such a backup.
The rule is simple: the closer the update, the fresher your backup should be. Make a backup → update the theme → check the site. If it crashes, roll back in a minute.
Safely testing an update
WordPress treats different versions of the same theme as two separate themes. If folders mytheme (v1) and mytheme-new (v1.1) both exist in /wp-content/themes/, the admin panel shows them as two distinct items.
You can use this behavior for safe testing:
- Copy the current theme to a folder with a different name (for example,
mytheme-old). - Install the new theme version the usual way.
- Activate the new version and check the site.
- If something breaks, switch back to the old version with one click.
This doesn't replace a child theme but gives you room to maneuver while you transfer settings from the old version to the new one. It especially helps when the theme developer radically changed template structure in a major update.
The video above provides a visual demonstration of creating a child theme from start to activation. If questions remain after the text instructions, this 7-minute clip will clarify everything.
⁉️🤔 Frequently asked questions
Do I have to create a child theme if I only edited CSS through "Customize" → "Additional CSS"?
No. Additional styles via the customizer are stored in the WordPress database, not in theme files. They won't be lost during updates. But if you added CSS through the theme's
style.cssfile, a child theme is required.
Can I create a child theme if the site is already live and has plugins installed?
Yes, creating a child theme doesn't affect plugins. The process is completely independent: you create a folder and two files, activate the child theme, and the site continues working as if nothing happened. One caveat: if you used customizer features (for example, set a logo or favicon), you'll need to reconfigure them after activating the child theme because these settings are tied to the specific active theme.
What should I do if the developer abandoned the parent theme?
The child theme will keep working, but security and compatibility with new WordPress versions become questionable. If the parent theme hasn't been updated for over a year, you should consider migrating to a different theme. In the short term, continue using the child theme as usual but plan for a transition.
Why is Genesis Framework better than a regular parent theme?
Genesis was created specifically to be a parent theme. It doesn't change design drastically between versions, provides a clean API of hooks and filters for child themes, and updates with backward compatibility in mind. A regular theme can redesign its template structure at any moment, and your child theme might stop working. With Genesis, that risk is minimal.
Can I update the theme automatically if I have a child theme active?
Yes, that's exactly what a child theme is for. The parent theme updates automatically (or manually), and the child theme remains completely untouched. All your edits stay in place.
To update or not to update: what to do right now
If you take away only one thing from this entire article, let it be this simple rule: don't edit theme files directly; create a child theme. It takes five minutes, and the savings are measured in hours of recovery after each update.
For beginners, the path is this: install One Click Child Theme → click one button → activate the child theme → and only then start customizing. For those who have already made changes to the parent theme, transfer them to the child theme following the instructions above, restore the originals, and update with peace of mind.
Do you have a different scheme for protecting settings during theme updates? Share in the comments, and we'll expand the guide.



