Since we are no longer supporting this plugin please feel free to look at one of the many forks for possible updates and fixes. If you are couragous enough you can fork this project and upgrade it as needed. Thanks
Do you wish that you could somehow get update notifications within WordPress for custom themes that you use for your site? Perhaps a custom theme that you had developed specifically for your site? Or a theme you developed for a client site? And do you wish you could do "automatic updates" to those custom themes just like you can for public themes available from WordPress.org?
This WordPress plugin lets you host a custom theme in a Github public repository (private repos are not supported) and then notify sites when a new version of the theme is available. Those sites can then perform an auto-update just as with publicly available themes. The plugin also allows you to roll back to a previous version of the theme.
This plugin works with WordPress in both a standalone and MultiSite mode and has been tested up to WordPress 3.3.x. It can be found in the WordPress plugin directory at:
Bugs, feature requests or other suggestions should be filed as issues at the plugin's Github repository
Here is a sample theme. Download (.zip)
Add Github Theme URI
to your style.css
header, this will be where the plugin looks for updates. I also recommend using semantic versioning for the version number. (Note that the version number does not need to start with "v" as shown in the examples below. You can simply use a number such as "1.2.0". You just need to be consistent with how you create version numbers.)
Example header:
Theme Name: Example
Theme URI: http://example.com/
Github Theme URI: https://github.com/username/repo
Description: My Example Theme
Author: person
Version: v1.0.0
Push these changes back to the project.
$ git tag v1.0.0
$ git push origin v1.0.0
Note, your tag numbers and theme version numbers should match. If you want to increment the version number, be sure to update and commit your style.css
prior to creating the new git tag.
Before the plugin can work, your theme with the Github Theme URI
addition needs to be uploaded to our WordPress site.
- Create a ZIP file of your theme on your local computer.
- Inside your WordPress admin menu (standalone) or network admin menu (MultiSite) go to the Install Themes panel and click on "Upload".
- Choose your ZIP file and press "Install Now".
Your theme will now be installed inside of WordPress and can be activated for your site. From this point forward all updates will be installed automatically once the plugin is activated.
Inside your WordPress admin menu (standalone) or network admin menu (MultiSite) choose "Add New" under the Plugins menu. Search for "Theme Updater" and this will bring you to the plugin's WordPress page where you can install the plugin directly into your WordPress installation. (Alternatively you can visit that page, download the plugin as a zip file and upload it to your WordPress install, but why go through all that work?)
With the plugin installed and activated (it must be network activated on multisite installs) on your site and the theme uploaded, the next time you push a new tag to your Github repository, it will be recognized by the plugin and an update notice will appear in your admin menu.
This is no configuration or settings panel for this plugin.
The process of updating your theme and generating auto-update notifications is now simply this:
2 - IMPORTANT - Update your style.css
file with a new version number and commit that change to your local repository.
$ git push origin master
$ git tag v1.1.0
$ git push origin v1.1.0
Note, you should use the identical number for the tag that you did for a version number in style.css
in step #2.
That's it. Now any sites with your theme installed will receive an update notification the next time their WordPress installation checks for updates.
The flow of the plugin is:
Code is a mashup of Wordpress source. I'm looking at:
Pull the tags trough the Repository Refs API.
Publish the update details to the response
array in the update_themes
transient, similar to how Wordpress updates themes.
*** v1.3.7 - July 23, 2012
- URLencode repo and user names
- Handle Github API errors appropriately
*** v1.3.6 - July 23, 2012
- Compabitilty with new Github API
- Updated README to address the following issues: Installation for MultiSite should mention "Network Activate" and Docs should mention that there is no configuration or settings panel
- Fix to SSL issue. Code by Github user bainternet. Added by Github user danyork.