Currently the process is to open the themes tab, click details, delete the existing theme, click add theme, open the dialogue box, select the file, begin upload then test before activating - but I’m pretty sure this process can be faster.

I’m using a Gulp build process to produce the theme folder and zip. The thing is I have a lot of files so installing via .zip is by far a much faster upload and I want speed for testing features and fixes. I could probably run a bash script to upload the file but I’m testing on some servers that allow ssh and others that don’t. So unZipping on the server seems out for some cases.

If a standard theme is out-of-date then WordPress can usually pull the zip and overwrite the theme during upgrades. If I knew what triggered it I could probably just push the zip to a dropbox folder and link to the file directly. It's not going to be on GitHub but I could push to an S3 bucket.

Regardless, if I could just click a box to add a theme without giving me a “theme already exists” error then I’d be happy with that.

Any suggestions?

Testing on Vagrant, pantheon.io, Dreamhost and AWS EC2. Triggering from a Gulp task or Bash is ideal or adding via the theme’s admin section is fine too.


2 Answers 2


git is probably by far the fastest and easiest way to update anything assuming you use git for development.

The alternative you hinted to in the question is to use the wordpress update API, but for this you will need to set up an update server. There is some code for that here https://github.com/YahnisElsts/wp-update-server. It is doable, but it doesn't sound as something trivial to do and you still need to upload your theme to the distribution server.

Which one is better probably depends on how many installs the theme has. For a small number of installs the git option sounds like the easiest one (never done it myself but I am sure a readonly access to the repository is something easy to do). If you have many installs or non technical people managing them then the update server is probably the best option.

  • 1
    Thanks. Pantheon.io is all git based so it would work fine for there although it would be a pain to add to the other servers. I'll take a look at the wp-update-server but that does seem like more work than it's worth.
    – jgraup
    Nov 29, 2015 at 17:35

So Mark Kaplun had it correctly, GIT is a great way to update a theme on the server. Not just for updating but also for versioning. The trick really is to eliminate any barrier outside your normal development process.

Unfortunately it's only part of the issue because you still need to trigger a pull by the server and deployment of the production-only files to the public folder. SSH will need to be setup.

Fortunately there are tools like Pipelines that can trigger a process after a merge. It's also free with Bitbucket private repos. So for continuous integration, you can trigger an automatic deployment after you've merged into a integration branch or even your master branch. At the very least, branch merging in git is the key catalyst.

From there, you have to notify your server -- which is another challenge.

I believe for my original question I was doing releases as zipped packages. So in theory I already had the stripped out development resources. Being that this answer comes a year later, I see the way to do it now (from zips) would be using WP-CLI.

wp theme install - Install a theme.

  1. rsync file to server
  2. ssh into the server or use an @alias
  3. wp @prod theme install ../my-theme.zip --activate


  1. wp theme install http://s3.amazonaws.com/bucketname/my-theme.zip?AWSAccessKeyId=123&Expires=456&Signature=abcdef --activate

This could easily be wrapped into the gulp process now days with SSH keys in place.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.