Updating a live theme safely?

Apologies for the general question, but I spent some time looking for an answer and couldn’t find anything.

I often find myself in a situation where I need to make tweaks to a live site based on a client’s feedback after going live, so I’m wondering the best way to quickly make changes on the live site without disruption.

Presumably it’s possible to duplicate the live theme, rename it in style.css so that it’s considered a ‘new’ theme yet still uses the same database etc. and then work on that? The question is, how would I view that new theme and then switch to it once all updates are done?

One day, I’ll need to get my head around GIT as from what I’ve heard that would solve this kind of problem in a very safe way.

Solutions Collecting From Web of "Updating a live theme safely?"

As far as my understanding you want to make changes in the theme without affecting the main theme so For this purpose the best practice would be creating child theme. So you can edit this child theme and your main theme will be safe. So, you can update the theme safely.

Refer to WordPressCodex on creating child theme.

Hope this solves the problem.

  1. Download Theme files via FTP
  2. Export site content via Tools -> Export
  3. Set up a development environment
  4. Upload Theme files (and any needed Plugins) to the development environment
  5. Import site content via Tools -> Import
  6. Make changes on the development site
  7. Upload updated Theme files from development site to live site
  8. Profit (probably)

You can try Theme test drive. Here’s the plugin description:

Theme Test Drive WordPress plugin allows you to safely test drive any
theme on your blog as administrator, while visitors still use the
default one.

It happens completely transparent and they will not even notice you
run a different theme for yourself.

Best part is you can even set the testing theme options (if it has
them) in the Admin panel while you are testing the theme.

You can also preview any theme by adding “?theme=xxx” to your blog
URL. For example http://www.myblog.com/?theme=Default