Создание уведомлений об обновлениях для моих тем

17

вопрос прост :) я делаю тему, которую буду использовать на многих сайтах. Поэтому я не хочу посещать весь сайт и загружать файлы каждый раз, когда исправляю ошибку или обновляю тему.

Есть ли способ, как я могу сделать систему обновления, как плагины, размещенные в каталоге плагинов WordPress.

С нетерпением жду вашего ответа. Благодарность!

Решено:

Спасибо Чипу Беннетту за отличную ссылку. Библиотека обновлений для тем теперь доступна на этом сайте. Вы можете найти его здесь: http://w-shadow.com/blog/2011/06/02/automatic-updates-for-commercial-themes/

Всегда рассматривайте пожертвование, если вы видите отличную работу, которая предоставляется бесплатно.

Sisir
источник
Используйте плагин проверки обновлений! Работает как для плагинов, так и для тем. github.com/YahnisElsts/plugin-update-checker
трансбетацизм

Ответы:

9

Вы также можете подключиться к процедуре обновления ядра. (Я ищу учебные ссылки, но мое Google-фу подводит меня сегодня утром.)

РЕДАКТИРОВАТЬ:

Посмотрите, поможет ли это руководство . В нем объясняется, как реализовать автоматическое обновление для частных / коммерческих (т.е. не размещаемых в репозитории) плагинов.

Чип Беннетт
источник
1
Я думаю, что этоpre_set_site_transient_update_plugins
Wyck
Благодарность! Я перехожу по вашей ссылке, и коды плагинов не работают, но я прошу парня изменить библиотеку для тем пару дней спустя, он сделал один! И теперь работает отлично! Я поставлю ссылку в моем вопросе. Благодарность!!
Сисир
1
Вот учебник для автоматического обновления тем также с того же сайта: w-shadow.com/blog/2011/06/02/…
Ярослав
pre_set_site_transient_update_pluginsзапускает только активированную тему на основном сайте. все другие пользовательские обновления тем не будут проверяться, даже если это мультисайтовый сайт и активированы другие пользовательские темы на других сайтах.
ви
3

Интересный вопрос! На самом деле, я думаю, вы должны сделать сервис, чтобы проверить обновления! Например yourdomain.comn / api / update-check! Тогда это может вернуть XML или JSON или некоторую полезную информацию, связанную с обновлением, такую ​​как версия, URL-адрес файла обновления (обновленный файл должен быть файлом zip)!

В вашей теме вы можете иметь:

    <?php define('OWN_THEME_VERSION', '1.1');

Итак, когда вы обнаружили обновление URL выше (yourdomain.comn / api / update-check), предположим, что оно возвращает данные JSO следующим образом: {"version": "1.2", "file": "theme.zip"}

Вы сравниваете версию, чтобы проверить наличие новых обновлений! Затем переключитесь на тему по умолчанию с помощью этой функции http://codex.wordpress.org/Function_Reference/switch_theme (для того, чтобы пользователи, зашедшие на сайт, увидели работающий сайт)! Затем ваш код может использовать curl или даже file_get_contents для загрузки zip-файла (в данном случае theme.zip)! Затем вы удаляете все файлы в папке вашей темы, затем извлекаете zip-файл и копируете его содержимое в папку темы! Я думаю, что так должно работать!

Возможно, вы захотите взглянуть на то, что сделал WordPress! Я нашел это в файле wp-admin / includes / update-core.php, строка 288, функция update_core

kureikain
источник
3
В основном это, но вместо использования curl или file_get используйте HTTP-API WordPress, codex.wordpress.org/HTTP_API
Wyck
Крутой Вик, я этого не знал;)!
kureikain
1
наконец-то есть время, чтобы начать читать об этом! Для текущей версии темы я могу использовать эту функцию codex.wordpress.org/Function_Reference/get_theme_data . Я начну работать с указанным вами подходом.
Сисир