Obecnie rozwijam wtyczkę Wordpress, której nie chcę w repozytorium wtyczek Wordpress. Nadal chcę jednak móc przesyłać aktualizacje moim klientom z mojego własnego repozytorium API.
Czytałem o tym sporo, a jedną z rzeczy, która wydaje się być czymś, jest pre_set_site_transient_update_plugins
filtr, ale nie mogę znaleźć dużo informacji na ten temat. Próbowałem tego samouczka ( http://konstruktors.com/blog/wordpress/2538-automatic-updates-for-plugins-and-themes-hosted-outside-wordpress-extend/ ), którego nie mogłem uruchomić. Na podstawie komentarzy mogę stwierdzić, że inni mogą to zrobić z prawie aktualną wersją WP (ostatnia odpowiedź 22 kwietnia).
Próbowałem zainstalować wtyczkę z witryny i umieścić folder API w drugiej domenie, ale powiadomienie o aktualizacji, które zwykle otrzymuję, gdy aktualizacja jest dostępna, nigdzie się nie pokazało.
Nie jestem pewien, czy rzeczywiście możliwe jest, aby niestandardowe wtyczki uruchamiały automatyczną aktualizację z innych repozytoriów, więc chciałbym usłyszeć, czy ktoś tutaj ma jakieś doświadczenie z tymi rzeczami? Rozwiązanie w samouczku wydawało się łatwe - zastanawiam się, czy można to zrobić w bardziej zaawansowany sposób?
Będzie mi bardzo miło pomóc w uzyskaniu tej automatycznej aktualizacji z mojego własnego repozytorium!
(PS: Używam WP w wersji 3.1.3)
Odpowiedzi:
Z korzyścią dla innych osób, które znajdą tę stronę, sugeruję osobom, które chcą udostępniać własne aktualizacje poza oficjalnym repozytorium WP, sprawdź ten projekt na GitHub, który demonstruje funkcjonalność:
https://github.com/jeremyclark13/automatic-theme-plugin-update
źródło
Tak, jest to możliwe. Na ten temat poświęcony jest cały rozdział dotyczący rozwoju profesjonalnych wtyczek WordPress . Jeśli jeszcze tego nie zrobiłeś, podnieś kopię. To na pewno pomoże.
źródło
add_filter("pre_set_site_transient_update_plugins","dne_altapi_check");
Po tym mam funkcję dne_altapi_check, która zawieraprint_r("hi");
- jednak gdy kliknę przycisk „Sprawdź ponownie” w ramach aktualizacji, to w ogóle nic nie drukuje .. Czy jestem robisz coś złego po podłączeniu do modułu sprawdzania aktualizacji?Istnieje komercyjny menedżer wtyczek i aktualizacji interfejsu API aktualizacji dla WooCommerce, który działa szczególnie, jeśli wtyczka lub motyw nie są hostowane na wordpress.org. Został zaprojektowany w celu dostarczania aktualizacji dla wtyczek i motywów na własnym serwerze. Wtyczka jest przeznaczona dla tych, którzy nie chcą pisać samodzielnie i potrzebują wielu funkcji, a także działających przykładów sprzedawanych wtyczek i motywów.
http://www.toddlahman.com/shop/wordpress-automatic-update-api-manager/
źródło
Istnieje również schludna usługa na http://wp-updates.com/ - dostajesz jeden motyw lub wtyczkę za darmo. Do Twojej wiadomości - to nie jest moja strona, ale próbowałem już jakiś czas temu i wyglądało całkiem nieźle.
źródło
W przypadku instalacji w pojedynczej witrynie (nie testowałem jej w wielu witrynach), musisz tylko zaktualizować dwa serwisy zewnętrzne, takie jak github lub gitlab. W poniższym kodzie używam gitlab, ponieważ właśnie tego używam do hostowania mojego kodu. Prawdopodobnie powinienem wyodrębnić części gitlab ...
Pierwszym hakiem, którego musisz użyć, jest
pre_set_site_transient_update_themes
. To jest filtr, którego używa WordPress, aby ustawić zmienną site_transient, aby pokazywała, czy są dostępne aktualizacje. Użyj tego haka, aby połączyć się ze zdalną wersją i sprawdzić, czy są dostępne aktualizacje. Jeśli tak, zmodyfikuj stan przejściowy, aby WordPress wiedział, że istnieją aktualizacje i mógł wyświetlić powiadomienie użytkownikowi.Drugi haczyk, którego musisz użyć, to
upgrader_source_selection
. Ten filtr jest potrzebny, w każdym razie dla gitlab, ponieważ nazwa pobranego folderu nie jest taka sama jak motyw, więc używamy tego haka, aby zmienić nazwę na prawidłową nazwę. Jeśli Twoje zdalne repozytorium zapewnia zip z prawidłową nazwą, to nawet nie potrzebujesz tego haka.Trzeci, opcjonalny zaczep, którego możesz użyć, to
auto_update_theme
automatyczna aktualizacja motywu. W poniższym przykładzie używam tego haka, aby automatycznie zaktualizować tylko ten konkretny motyw.Ten kod został przetestowany tylko z WordPress 4.9.x. Wymaga PHP> 7.0.
functions.php
updater.php
źródło