Tworzenie funkcji powiadomień o aktualizacji dla moich motywów


17

pytanie jest proste :) Tworzę motyw, którego będę używać w wielu witrynach. Nie chcę więc wchodzić na całą stronę i pobierać plików za każdym razem, gdy naprawiam błąd lub aktualizuję motyw.

Czy jest jakiś sposób, aby zrobić system aktualizacji, taki jak wtyczki hostowane w katalogu wtyczek wordpress.

Czekam na twoją odpowiedź. Dzięki!

Rozwiązany:

Dzięki Chip Bennett za jego doskonały link. Biblioteka aktualizacji motywów jest teraz dostępna w tej witrynie. Można go znaleźć tutaj: http://w-shadow.com/blog/2011/06/02/automatic-updates-for-commercial-themes/

Zawsze rozważ darowiznę, jeśli zobaczysz doskonałą pracę, która została udostępniona za darmo.


Użyj kontrolera aktualizacji wtyczek! Działa zarówno z wtyczkami, jak i motywami. github.com/YahnisElsts/plugin-update-checker
transbetacism

Odpowiedzi:


9

Możesz także podłączyć się do podstawowej procedury aktualizacji. (Szukam linków do samouczków, ale dziś rano mój Google-fu zawodzi.)

EDYTOWAĆ:

Sprawdź, czy ten samouczek pomaga . Wyjaśnia, jak wdrożyć automatyczne aktualizacje wtyczek prywatnych / komercyjnych (tj. Nie hostowanych w repozytorium).


1
Myślę, że takpre_set_site_transient_update_plugins
Wyck

Dzięki! Idę przez ciebie link, a kody wtyczek nie działały, ale proszę faceta o zmodyfikowanie biblioteki motywów kilka dni później, on stworzył! A teraz działa świetnie! Umieszczę link w moim pytaniu. Dzięki!!
Sisir,

1
Oto samouczek dotyczący automatycznych aktualizacji motywów również z tej samej strony: w-shadow.com/blog/2011/06/02/…
Jaroslav Klimčík

pre_set_site_transient_update_pluginsuruchamia tylko aktywowany motyw na stronie głównej. wszystkie inne niestandardowe aktualizacje motywu nie zostaną sprawdzone, nawet jeśli jest to wiele witryn i aktywowano inny niestandardowy motyw w innych witrynach.
vee

3

Pytanie o zainteresowanie! W rzeczywistości uważam, że powinieneś zrobić usługę, aby sprawdzić aktualizację! Takich jak twoja_domena.comn / api / update-check! Może to zwrócić XML lub JSON lub niektóre przydatne informacje związane z aktualizacją, takie jak wersja, adres URL pliku aktualizacji (zaktualizowany plik powinien być plikiem zip)!

W swoim motywie możesz mieć:

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

Kiedy więc wykryjesz aktualizację z powyższego adresu URL (twojadomena.comn / api / update-check), załóż, że zwraca dane JSO w następujący sposób: {„wersja”: „1.2”, „plik”: „theme.zip”}

Porównujesz wersję, aby sprawdzić, czy jest nowa aktualizacja! Następnie przejdź do domyślnego motywu za pomocą tej funkcji http://codex.wordpress.org/Function_Reference/switch_theme (aby użytkownicy wchodzący na stronę zobaczyli działającą stronę)! Następnie twój kod może użyć curl lub nawet file_get_contents, aby pobrać plik zip (w tym przypadku theme.zip)! Następnie usuwasz cały plik z folderu motywu, a następnie wyciągasz plik zip i kopiujesz jego zawartość do folderu motywu! Myślę, że w ten sposób powinno działać!

Możesz rzucić okiem na to, co zrobił WordPress! Znalazłem to w pliku wp-admin / include / update-core.php, wiersz 288, funkcja update_core


3
Zasadniczo to, ale zamiast używania curl lub file_get użyj API WordPress HTTP, codex.wordpress.org/HTTP_API
Wyck

Fajne Wyck, nie wiedziałem o tym;)!
kureikain

1
w końcu mam trochę czasu, aby zacząć od nowa! W bieżącej wersji motywu mogę użyć tej funkcji codex.wordpress.org/Function_Reference/get_theme_data . Zacznę pracować z podejściem, które wskazałeś.
Sisir
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.