Давно искал эффективное решение для обновления плагинов и тем с GitHub. Эксперементировал со специальным классом.

Но решение было крайне замороченным и ляповатым.

Тут снова возникла потребность, погуглил и нашел новое решение GitHub Updater.

Попробовал и очень понравилось!

По сути настройка сводится к двум шагам:

1. Поставить плагин GitHub Updater

2. Добавить в свою тему или плагин одну или две строчки

Давайте рассмотрим их подробнее.

Ставим плагин

  1. Идем на страницу плагина и скачиваем последнюю версию https://github.com/afragen/github-updater
  2. Ставим к себе на сайт из архива. Как обычно.
  3. Активируем

Тут все 🙂

Добавляем строчку в свой компонент

Нужно добавить строчку типа https://github.com/<owner>/<repo> или коротко <owner>/<repo> в основной файл плагина или темы.

Перед строчкой добавить ключ: GitHub Theme URI для темы или GitHub Plugin URI для плагина.

Пример для темы:

/*
Theme Name:       Test Theme
Theme URI:        http://drfragen.info/
Version:          0.1.0
Description:      Child theme of TwentyTwelve.
Author:           Andy Fragen
Template:         twentytwelve
Template Version: 1.0.0
GitHub Theme URI: https://github.com/afragen/test-child
*/

Пример для плагина

/*
Plugin Name:       Test Plugin
Plugin URI:        https://github.com/afragen/github-updater
Description:       A plugin to automatically update GitHub hosted plugins and themes into WordPress. Plugin class based upon <a href="https://github.com/codepress/github-plugin-updater">codepress/github-plugin-updater</a>. Theme class based upon <a href="https://github.com/WordPress-Phoenix/whitelabel-framework">Whitelabel Framework</a> modifications.
Version:           1.0.0
Author:            Andy Fragen
License:           GNU General Public License v2
License URI:       http://www.gnu.org/licenses/gpl-2.0.html
Domain Path:       /languages
Text Domain:       github-updater
GitHub Plugin URI: https://github.com/afragen/test-plugin
*/

Все!

Далее либо ждем когда движок сам проверит обновления, или идем и помогаем ему:

Далее все как обычно. За исключением того, что файлы будут взяты с GitHub.

Особенности

Далее есть ряд особенностей.

1. Можно указать ветку, из которой брать обновления, для этого нужно указать ключ типа

GitHub Branch:     master

В том же блоке, где мы указали адрес до репозитория.

Скажу честно, эту возможность не проверял.

2. Чтобы плагин обнаружил новую версию, достаточно поменять версию в основном файле компонента. Как мы это делаем обычно:

Version:           1.0.0

3. Еще странная особенность в том, что не указав ветку, обновление будет браться из последней метки.

И здесь нас подстерегает еще одна засада. Если вы только что сделали коммит и поставили ему новую метку, то видимо есть некая задержка кеша и попытка обновления будет срабатывать на предыдущую метку. Нужно чуть чуть подождать и тогда обновление пройдет нормально. Я так пол часа бился, меняя метки и не понимая, почему загружается старая версия плагина 🙂

4. И очень важно — нужно чтобы имя репозитория и имя папки плагина совпадали точно. Иначе при обновлении будет — барабум! Он будет записываться в левую папку.

Join the Conversation

1 Comment

  1. Привет! Сделал по твоей инструкции. Пока не плагин не видит своих обновлений на github. Можешь подсказать что делаю не так?

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *