В настоящее время у меня есть клиентская тема на github. Вместо того, чтобы развертывать git или использовать службу, например, развертывание Beanstalk. Я буду нажимать одну и ту же тему на многих сайтах (точнее, 79) и хочу, чтобы они могли обновлять себя так же, как тема репозитория WP repo. Хорошим примером является то, как в системе Genesis работают обновления. Я видел вещи, в которых у вас есть другой плагин, установленный для этого, но я ищу более минималистское решение (если в любом случае сохранить эту функциональность в самой теме)?
Там есть несколько библиотек. Один из наиболее известных из Джои Кудиша и принимал на GitHub .
В основном это делает следующее:
'pre_set_site_transient_update_plugins'
'plugins_api'
wp_remote_get()
в wp_remote_get()
GitHub. О, да – близко, забыл об этом – он добавляет переходный период, чтобы избежать проверки удаленного репо по каждому запросу.
Для этого вам нужны две основные вещи
pre_set_site_transient_update_themes
Основная предпосылка – версия вашей темы хранится в переходном режиме, который проверяет удаленный URL-адрес каждые x часов и сравнивает $version
.
Заметки:
URL-адрес может быть любым, HTTP API поддерживает аутентификацию (частное репо) или все, что вы хотите отправить через заголовок.
Проверка может представлять собой любое сравнение переменных, хотя обычно вы используете версию.
Файл может быть любым, что можно разобрать (.xml, .txt), но обычно вы используете style.css
Вместо этого я добавлю код, чтобы проверить это: https://github.com/jeremyclark13/automatic-theme-plugin-update , в частности часть темы.