While you can’t modify it without changing it, you can isolate the parts you change by creating a Child Theme. In summary:
- Create a theme directory on peer with your “parent” theme,
- Create a
style.css
file in your new directory that has aTemplate:
declaration in the comments naming your parent theme and an@import url(../%parent-theme%/style.css)
to import the CSS from the parent theme, - Activate your new theme in the WordPress admin console,
- Add new files and/or copy files from your parent theme directory to your child theme directory and modify them to your preference, and
- That’s it!
I could give you lots more details but basically this guy does a really good job of explaining How to Create a Child Theme so better for me just to point you to it.
When you want to upgrade the parent theme just upgrade; it will leave your child theme in-tact. Of course your child theme may not work perfectly if they’ve changed the parent too much and/or if you copied and modified theme files they updated in the new version you won’t get the new functionality without modifying them too, but it’s a lot better from starting over each time!
Hope that helps.