Я сейчас разрабатываю плагин для WordPress, который мне не нужен в репозитории плагинов для Wordpress. Однако я все еще хочу иметь возможность загружать обновления для своих клиентов из моего собственного API-репозитория.
Я много читал об этом, и одна вещь, которая, кажется, кое-что о чем-то, это pre_set_site_transient_update_plugins
фильтр, однако я не могу найти много информации об этом. Я пробовал этот учебник ( http://konstruktors.com/blog/wordpress/2538-automatic-updates-for-plugins-and-themes-hosted-outside-wordpress-extend/ ), который я не смог получить. Я могу сказать по комментариям, что другие могут действительно заставить это работать с тем, что должно быть почти с текущей версией WP (последний ответ 22 апреля).
Я попытался установить плагин с сайта и поместить папку API во второй домен, но уведомление об обновлении, которое я обычно получаю, когда доступно обновление, нигде не показывалось.
Я не уверен, возможно ли на самом деле, чтобы пользовательские плагины запускали автообновление из других репозиториев, поэтому я хотел бы узнать, есть ли у кого-нибудь здесь какой-либо опыт с этим материалом? Решение в учебном пособии казалось простым решением - интересно, возможно ли как-то сделать это более продвинутым способом?
Буду очень признателен за любую помощь в получении этого автообновления из моего собственного хранилища!
(PS: я использую WP версии 3.1.3)
Ответы:
Для тех, кто находит эту страницу, я предлагаю тем, кто желает предоставить свои собственные обновления вне официального репозитория WP, проверить этот проект на GitHub, который демонстрирует функциональность:
https://github.com/jeremyclark13/automatic-theme-plugin-update
источник
Да, это возможно Для этого есть целая глава в Профессиональной разработке плагинов WordPress . Если вы еще этого не сделали, возьмите копию. Это определенно поможет.
источник
add_filter("pre_set_site_transient_update_plugins","dne_altapi_check");
После этого у меня есть функция dne_altapi_check, которая содержитprint_r("hi");
- однако, когда я нажимаю кнопку «Проверить снова» под обновлениями, она вообще ничего не печатает. делать что-то не так при подключении к проверке обновлений?Это коммерческий менеджер API плагинов и обновлений тем для WooCommerce, который специально работает, если плагин или тема не размещены на wordpress.org. Он предназначен для предоставления обновлений для собственных плагинов и тем. Плагин предназначен для тех, кто не хочет писать его самостоятельно, и нуждается в большом количестве функций, а также в рабочих примерах для плагинов и тем, которые продаются.
http://www.toddlahman.com/shop/wordpress-automatic-update-api-manager/
источник
На http://wp-updates.com/ также есть отличный сервис - вы получаете одну тему или плагин бесплатно. К вашему сведению - это не мой сайт, но я пробовал это некоторое время назад, и это выглядело довольно хорошо.
источник
Для установки на одном сайте (я не тестировал ее на нескольких сайтах), есть только две ловушки, которые нужно обновить из внешней службы, такой как github или gitlab. В приведенном ниже коде я использую gitlab, поскольку именно это я и использую для размещения своего кода прямо сейчас. Я, вероятно, должен абстрагировать части gitlab ...
Первый хук, который вам нужно использовать, это
pre_set_site_transient_update_themes
. Это фильтр, который WordPress использует для установки site_transient, чтобы показать, есть ли доступные обновления. Используйте этот хук, чтобы подключиться к удаленной версии и посмотреть, есть ли доступные обновления. Если есть, то измените переходный процесс так, чтобы WordPress знал, что есть обновления, и мог показать уведомление пользователю.Другой крючок, который вам нужно использовать, это
upgrader_source_selection
. Этот фильтр необходим для gitlab в любом случае, потому что имя загруженной папки не совпадает с темой, поэтому мы используем этот хук, чтобы переименовать его в правильное имя. Если ваш удаленный репозиторий предоставляет почтовый индекс с правильным именем, то вам даже не нужен этот хук.Третий, необязательный, хук, который вы можете использовать, это
auto_update_theme
если вы хотите автоматически обновлять вашу тему. В приведенном ниже примере я использую этот хук для автоматического обновления только этой конкретной темы.Этот код был протестирован только с WordPress 4.9.x. Требуется PHP> 7.0.
functions.php
updater.php
источник