WordPress users often wonder if they will lose any settings when updating their WordPress theme to a newer version. We’d say that the answer depends on how you have managed your site and how you made your customizations. Usually, if you are just using your WordPress theme and have not made any customizations to theme files, you won’t lose settings when you update your theme.
An exception is when there are major changes to the core settings or layout of your WordPress theme, for example if your WordPress theme has been completely recoded. Usually isn’t a big deal, especially since this usually is being announced by theme developers.
In case you have modified the CSS in the stylesheet of your WordPress theme or have changed the code in any core theme files, these changes will be lost after theme updates.
To make sure you don’t get this problem, make your CSS customizations through your WordPress dashboard under Appearance => Customize => Additional CSS (which is available since WP 4.7). A lot of themes on the market have their own custom CSS areas, which are also used because before WP 4.7 this was a feature which was not available.
This is the best way to add code customization which will keep your modified code and won’t be lost after theme updates. However, keep in mind that this will only preserve your code, it doesn’t mean that your code modifications will be compatible with your updated WordPress theme. In case of incompatibilities, you need to adjust your code accordingly to ensure compatibility with your theme. We recommend you to check all the change logs for theme updates before actually doing it.
Of course, the child theme
As you might already know, the best way to do this would be to use a child theme. A custom child theme is an extension of your original (parent) theme where you can modify theme files and CSS code very easily. This means that you are not touching the base (parent) theme code, but only adding or replacing it with the child theme which means that inside your child theme you can simply override the template files and the stylesheet of the parent theme. These code changes won’t be lost after theme updates. Sure, you can also override PHP functions within child themes to customize functionality or looks.