web-dev-qa-db-fra.com

Avoir WP Mise à jour du thème depuis le référentiel Git

J'ai un thème de client actuellement hébergé sur github. Au lieu de faire un déploiement git ou d'utiliser un service tel que les déploiements de Beanstalk. Je vais promouvoir le même thème sur de nombreux sites (79 exactement) et je veux qu’ils puissent se mettre à jour comme un thème hébergé WP. Un bon exemple est la manière dont le framework Genesis fonctionne. J'ai vu des choses pour lesquelles vous avez installé un autre plugin, mais je cherche une solution plus minimaliste (s'il est possible de conserver cette fonctionnalité dans le thème lui-même)?

2
Zach Russell

Il y a quelques bibliothèques là-bas. L'un des plus connus est celui de Joey Kudish et hébergé sur GitHub lui-même .

Fondamentalement, il fait ce qui suit:

  • utilise le API GitHub
  • Ajoute un rappel au filtre 'pre_set_site_transient_update_plugins'
  • Ajoute un autre rappel au filtre 'plugins_api'
  • utilise enfin le WP HTTP API et effectue une wp_remote_get() vers le référentiel GitHub.

Oh, oui - près d'avoir oublié cela - cela ajoute un transitoire pour éviter de vérifier le dépôt à distance à chaque requête.

4
kaiser

Vous avez besoin de 2 choses de base pour accomplir cela

  • Crochet dans pre_set_site_transient_update_themes
  • Utilisez l'API HTTP pour interroger l'url de votre mise à jour

Le principe de base est que la version de votre thème est stockée dans un transitoire qui vérifie une URL distante tous lesx/ hours et compare le $version.

Notes:

L'URL peut être n'importe quoi, l'API HTTP prend en charge l'authentification (repo privé) ou tout ce que vous voulez envoyer via l'en-tête.

La vérification peut être toute comparaison de variable, bien que vous utilisiez généralement une version.

Le fichier peut contenir n’importe quel élément pouvant être analysé (.xml, .txt), mais vous utilisez généralement le code style.css.

Au lieu d’ajouter du code, vérifiez ceci: https://github.com/jeremyclark13/automatic-theme-plugin-update , en particulier la partie thème.

1
Wyck