Création d'une fonctionnalité de notification de mise à jour pour mes thèmes


17

la question est simple :) Je fais un thème que j'utiliserai dans de nombreux sites. Donc, je ne veux pas aller sur tout le site et ftp les fichiers chaque fois que je corrige un bogue ou que je fais une mise à niveau du thème.

Existe-t-il un moyen de créer un système de mise à jour comme les plugins hébergés dans le répertoire des plugins wordpress.

Dans l'attente de votre réponse. Merci!

Résolu:

Merci Chip Bennett pour son excellent lien. La bibliothèque de mise à jour des thèmes est désormais disponible sur ce site. Vous pouvez le trouver ici: http://w-shadow.com/blog/2011/06/02/automatic-updates-for-commercial-themes/

Pensez toujours à faire un don si vous voyez un excellent travail mis à disposition gratuitement.


Utilisez Plugin Update Checker! Fonctionne pour les plugins et les thèmes. github.com/YahnisElsts/plugin-update-checker
transbetacism

Réponses:


9

Vous pouvez également vous connecter à la routine de mise à jour principale. (Je recherche des liens de tutoriel, mais mon Google-fu me fait défaut ce matin.)

ÉDITER:

Voyez si ce tutoriel vous aide . Il explique comment mettre en œuvre des mises à niveau automatiques pour les plugins privés / commerciaux (c'est-à-dire non hébergés par le référentiel).


1
Je pense que c'estpre_set_site_transient_update_plugins
Wyck

Merci! Je passe par votre lien et les codes des plugins n'ont pas fonctionné mais je demande au gars de modifier la bibliothèque des thèmes quelques jours plus tard, il en a fait un! Et maintenant, ça marche très bien! Je mettrai le lien dans ma question. Merci!!
Sisir

1
Voici un tutoriel pour les mises à jour automatiques des thèmes également depuis le même site: w-shadow.com/blog/2011/06/02/…
Jaroslav Klimčík

pre_set_site_transient_update_pluginsexécute uniquement le thème activé sur le site principal. toutes les autres mises à jour de thèmes personnalisés ne seront pas vérifiées même si elles sont multi-sites et activées d'autres thèmes personnalisés sur d'autres sites.
vee

3

Une question d'intérêt! En fait, je pense que vous devriez faire un service pour vérifier la mise à jour! Tels que votredomaine.comn / api / update-check! Ensuite, cela peut renvoyer XML ou JSON ou certaines informations utiles liées à la mise à jour telles que la version, l'url du fichier de mise à jour (le fichier mis à jour doit être un fichier zip)!

Dans votre thème, vous pouvez avoir:

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

Ainsi, lorsque vous avez détecté une mise à jour de l'URL ci-dessus (votredomaine.comn / api / update-check), supposez qu'elle renvoie les données JSO comme suit: {"version": "1.2", "file": "theme.zip"}

Vous comparez la version pour vérifier la nouvelle mise à jour! Passez ensuite au thème par défaut avec cette fonction http://codex.wordpress.org/Function_Reference/switch_theme (dans l'ordre lorsque les utilisateurs accèdent au site, ils voient un site de travail)! Ensuite, votre code peut utiliser curl ou même file_get_contents pour télécharger le fichier zip (theme.zip dans ce cas)! Ensuite, vous supprimez tous les fichiers de votre dossier de thème, puis extrayez le fichier zip et copiez son contenu dans le dossier de thème! Je pense que de cette façon cela devrait fonctionner!

Vous voudrez peut-être jeter un œil à ce que WordPress a fait! J'ai trouvé que c'était dans le fichier wp-admin / includes / update-core.php, ligne 288, fonction update_core


3
Fondamentalement, mais au lieu d'utiliser curl ou file_get, utilisez l'API HTTP WordPress, codex.wordpress.org/HTTP_API
Wyck

Cool Wyck, je ne le savais pas;)!
kureikain

1
enfin eu le temps de commencer la recherche sur ce sujet! Pour la version actuelle du thème, je peux utiliser cette fonction codex.wordpress.org/Function_Reference/get_theme_data . Je vais commencer à travailler avec l'approche que vous avez indiquée.
Sisir
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.