Creare una funzionalità di notifica aggiornamenti per i miei temi

1 mag 2011, 14:27:29
Visualizzazioni: 19.3K
Voti: 17

La domanda è semplice :) Sto creando un tema che utilizzerò in molti siti. Quindi, non voglio dover accedere a ogni sito e caricare i file via FTP ogni volta che correggo un bug o faccio un aggiornamento del tema.

Esiste un modo per creare un sistema di aggiornamento simile a quello dei plugin ospitati nella directory dei plugin di WordPress?

Attendo con ansia la tua risposta. Grazie!

Risolto:

Grazie a Chip Bennett per il suo eccellente link. La libreria di aggiornamento per temi è ora disponibile su quel sito. Puoi trovarla qui: http://w-shadow.com/blog/2011/06/02/automatic-updates-for-commercial-themes/

Considera sempre una donazione se trovi un lavoro eccellente messo a disposizione gratuitamente.

1
Commenti

Usa Plugin Update Checker! Funziona sia per i plugin che per i temi. https://github.com/YahnisElsts/plugin-update-checker

transbetacism transbetacism
4 gen 2018 23:47:57
Tutte le risposte alla domanda 2
4

Puoi anche agganciarti alla routine di aggiornamento del core. (Sto cercando link a tutorial, ma le mie abilità con Google stamattina non sono al top.)

MODIFICA:

Dai un'occhiata a questo tutorial. Spiega come implementare aggiornamenti automatici per plugin privati/commerciali (cioè non ospitati nel repository).

1 mag 2011 17:30:34
Commenti

Penso sia pre_set_site_transient_update_plugins

Wyck Wyck
1 mag 2011 18:27:25

Grazie! Ho seguito il tuo link e i codici del plugin non funzionavano, ma ho chiesto al ragazzo di modificare la libreria per i temi e un paio di giorni dopo ne ha creata una! E ora funziona alla grande! Metterò il link nella mia domanda. Grazie!!

Sisir Sisir
8 giu 2011 20:01:29

Ecco un tutorial per gli aggiornamenti automatici dei temi dallo stesso sito: http://w-shadow.com/blog/2011/06/02/automatic-updates-for-commercial-themes/

Jaroslav Klimčík Jaroslav Klimčík
11 gen 2016 20:38:25

pre_set_site_transient_update_plugins viene eseguito solo sul tema attivato nel sito principale. Tutti gli altri aggiornamenti di temi personalizzati non verranno verificati, anche in caso di multi site con altri temi personalizzati attivati su altri siti.

vee vee
21 nov 2016 06:01:58
3

Una domanda interessante! In effetti, penso che dovresti creare un servizio per verificare gli aggiornamenti! Ad esempio yourdomain.comn/api/update-check! Questo può restituire XML o JSON o alcune informazioni utili relative all'aggiornamento come la versione, l'URL del file di aggiornamento (il file aggiornato dovrebbe essere un file zip)!

Nel tuo tema puoi avere:

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

Quindi, quando rilevi un aggiornamento dall'URL sopra (yourdomain.comn/api/update-check), supponendo che restituisca dati JSON come segue: {"version":"1.2","file":"theme.zip"}

Confronti la versione per verificare nuovi aggiornamenti! Poi passi al tema predefinito con questa funzione http://codex.wordpress.org/Function_Reference/switch_theme (in modo che quando gli utenti accedono al sito, vedano un sito funzionante)! Successivamente, il tuo codice può usare curl o anche file_get_contents per scaricare il file zip (theme.zip in questo caso)! Poi, elimini tutti i file nella cartella del tuo tema, estrai il file zip e copi il suo contenuto nella cartella del tema! Penso che in questo modo dovrebbe funzionare!

Potresti voler dare un'occhiata a ciò che WordPress fa! Ho trovato che si trova nel file wp-admin/includes/update-core.php, riga 288, funzione update_core

1 mag 2011 15:23:37
Commenti

Fondamentalmente questo, ma invece di usare curl o file_get, utilizza la WordPress HTTP API, http://codex.wordpress.org/HTTP_API

Wyck Wyck
1 mag 2011 15:35:29

Fantastico Wyck, non lo sapevo ;)!

kureikain kureikain
1 mag 2011 15:39:21

finalmente ho trovato un po' di tempo per iniziare la ricerca su questo! Per la versione corrente del tema posso usare questa funzione http://codex.wordpress.org/Function_Reference/get_theme_data. Inizierò a lavorare con l'approccio che hai indicato.

Sisir Sisir
29 mag 2011 23:06:11