Cum să implementez funcționalitate de notificare pentru actualizări în temele mele

1 mai 2011, 14:27:29
Vizualizări: 19.3K
Voturi: 17

Întrebarea este simplă :) Dezvolt o temă pe care o voi folosi pe multiple site-uri. Nu doresc să accesez fiecare site și să încarc manual fișierele prin FTP de fiecare dată când repar un bug sau fac o actualizare.

Există vreo metodă prin care pot implementa un sistem de actualizare similar cu cel al plugin-urilor găzduite în directorul oficial WordPress.

Aștept cu interes răspunsul vostru. Mulțumesc!

Rezolvat:

Mulțumiri lui Chip Bennett pentru link-ul excelent. Biblioteca pentru actualizări automate pentru teme este acum disponibilă pe acel site. O puteți găsi aici: http://w-shadow.com/blog/2011/06/02/automatic-updates-for-commercial-themes/

Luați întotdeauna în considerare donația dacă întâlniți o muncă excelentă pusă la dispoziție gratuit.

1
Comentarii

Folosește Plugin Update Checker! Funcționează atât pentru plugin-uri, cât și pentru teme. https://github.com/YahnisElsts/plugin-update-checker

transbetacism transbetacism
4 ian. 2018 23:47:57
Toate răspunsurile la întrebare 2
4

De asemenea, poți să te conectezi la rutina de actualizare a nucleului. (Caut linkuri către tutoriale, dar abilitățile mele de căutare pe Google nu mă ajută în această dimineață.)

EDIT:

Verifică dacă acest tutorial te ajută. Explică cum să implementezi actualizări automate pentru Pluginuri private/comerciale (adică cele care nu sunt găzduite în depozit).

1 mai 2011 17:30:34
Comentarii

Cred că este pre_set_site_transient_update_plugins

Wyck Wyck
1 mai 2011 18:27:25

Mulțumesc! Am parcurs linkul tău și codurile pluginului nu au funcționat, dar am cerut persoanei respective să modifice biblioteca pentru teme și câteva zile mai târziu a realizat una! Și acum funcționează perfect! Voi pune linkul în întrebarea mea. Mulțumesc!!

Sisir Sisir
8 iun. 2011 20:01:29

Iată un tutorial pentru actualizări automate ale temelor, tot de pe același site: http://w-shadow.com/blog/2011/06/02/automatic-updates-for-commercial-themes/

Jaroslav Klimčík Jaroslav Klimčík
11 ian. 2016 20:38:25

pre_set_site_transient_update_plugins rulează doar tema activată pe site-ul principal. toate celelalte actualizări pentru teme personalizate nu vor fi verificate chiar dacă este un site multi-site și sunt activate alte teme personalizate pe alte site-uri.

vee vee
21 nov. 2016 06:01:58
3

O întrebare interesantă! De fapt, cred că ar trebui să creezi un serviciu pentru verificarea actualizărilor! De exemplu, yourdomain.com/api/update-check! Acesta poate returna XML sau JSON sau alte informații utile legate de actualizare, cum ar fi versiunea, URL-ul fișierului de actualizare (fișierul actualizat ar trebui să fie un fișier zip)!

În tema ta poți avea:

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

Deci, când detectezi o actualizare de la URL-ul menționat mai sus (yourdomain.com/api/update-check), să presupunem că returnează date JSON după cum urmează: {"version":"1.2","file":"theme.zip"}

Compari versiunea pentru a verifica dacă există o actualizare nouă! Apoi schimbi la tema implicită folosind această funcție http://codex.wordpress.org/Function_Reference/switch_theme (pentru ca atunci când utilizatorii accesează site-ul, să vadă un site funcțional)! Apoi, codul tău poate folosi curl sau chiar file_get_contents pentru a descărca fișierul zip (theme.zip în acest caz)! Apoi, ștergi toate fișierele din folderul temei tale, extragi conținutul fișierului zip și îl copiezi în folderul temei! Cred că în acest fel ar trebui să funcționeze!

Poți să te uiți și la cum a implementat WordPress acest lucru! Am găsit în fișierul wp-admin/includes/update-core.php, linia 288, funcția update_core

1 mai 2011 15:23:37
Comentarii

Practic același lucru, dar în loc să folosești curl sau file_get, utilizează WordPress HTTP API, http://codex.wordpress.org/HTTP_API

Wyck Wyck
1 mai 2011 15:35:29

Super Wyck, nu știam asta ;)!

kureikain kureikain
1 mai 2011 15:39:21

în sfârșit am găsit timp să încep cercetarea pe această temă! Pentru versiunea curentă a temei pot folosi această funcție http://codex.wordpress.org/Function_Reference/get_theme_data. Voi începe să lucrez cu abordarea pe care ai indicat-o.

Sisir Sisir
29 mai 2011 23:06:11