Mettre à jour facilement un thème WordPress premium avec dploy

Mettre à jour facilement un thème WordPress premium avec dploy

Oui, parce que certains thèmes ne permettent pas la mise à jour automatique.

Dans ce cas, il est nécessaire de passer par votre client FTP préféré et de copier les fichiers manuellement.

Nous allons voir comment versionner le thème premium avec Git, au moins utile pour voir les différences avec les versions précédentes, et surtout pour déployer les fichiers modifiés en une ligne de commande avec dploy.

dploy ?

dploy est un utilitaire écrit en Node.js et installable avec npm.

Il est simple d’utilisation : une fois configuré et démarré, il détecte les fichiers qui ont été modifiés depuis la dernière mise à jour et les envoie par FTP sur le serveur Web.

L’intérêt de n’envoyer que les fichiers modifiés est que la mise à jour est beaucoup plus rapide, l’impact est bien moins grand pour les visiteurs.

Notez que dploy sait quels fichiers sont différents parce qu’il se base sur Git.

Installation

D’abord, si ce n’est pas déjà fait, il faut installer Git et Node.js. Tout est expliqué sur leurs sites respectifs.

Ensuite, c’est au tour de dploy, à installer en ligne de commande avec npm, l’utilitaire d’installlation livré avec Node.js :

npm install -g dploy

dploy est installé globalement avec l’option -g, ce qui signifie qu’il est accessible depuis n’importe quel dossier de votre ordinateur en ligne de commande.

Initialisation du thème

Décompressez les fichiers du thème premium dans un dossier.

Configuration de dploy

En ligne de commande, allez dans ce dossier et transformez-le en dépôt Git :

cd /chemin/vers/mon/theme-premium/
git init

Créez le fichier de configuration de dploy :

dploy install

Un nouveau fichier dploy.yaml est créé, il va contenir la configuration FTP des sites utilisant le thème, par exemple une version pour les tests et une version de production.

test:
    scheme: ftp
    host: test.mon-site.com
    port: 21
    user: mon-utilisateur-test
    check: true
    path:
        remote: httpdocs/wp-content/themes/theme-premium
    exclude: ["dploy.yaml", ".gitignore"]

prod:
    scheme: ftp
    host: mon-site.com
    port: 21
    user: mon-utilisateur-prod
    check: true
    path:
        remote: httpdocs/wp-content/themes/theme-premium
    exclude: ["dploy.yaml", ".gitignore"]

Notez bien que le format YAML se base sur l’indentation, c’est-à-dire le nombre d’espaces en début de ligne. Si un espace est en trop, manque, ou s’est transformé en tabulation, le fichier devient invalide.

Quelques commentaires :

  • le fichier contient deux sections : test et prod, qui correspondent à deux environnements. Il peut y en avoir plus
  • host et user sont l’hôte et l’identifiant FTP…
  • le mot de passe n’est pas fourni dans le fichier de configuration. Il est renseigné au moment du lancement de dploy, au moins pour éviter de stocker le mot de passe en clair.
  • check permet de lister et confirmer les fichiers à mettre à jour par FTP
  • remote est le chemin sur le serveur
  • exclude permet de lister les fichiers à ne pas envoyer par FTP

Commit avec git

Maintenant que dploy est configuré, il ne reste plus qu’à commiter les fichiers du thème :

git add -A .
git commit -m "Premier commit, dploy est configuré"

Transfert du thème par FTP

Maintenant que dploy est configuré et que ses fichiers sont commités, le thème premium peut être transféré par FTP, par exemple sur le serveur de test :

dploy test

A ce moment là, dploy demande le mot de passe pour accéder au serveur FTP, et transfère la totalité des fichiers, même s’ils étaient déjà présents.

A partir de la fois suivante, seuls les fichiers qui ont été modifiés ou ajoutés seront transférés.

Plus tard : mettre à jour le thème

D’abord localement

A chaque fois que vous voudrez mettre à jour le thème, quand son auteur vous notifie d’une nouvelle version par exemple, le plus simple est de :

  • supprimer tout le contenu du dossier local du thème, à l’exception du fichier dploy.yaml et du dossier .git
  • décompresser le thème dans le dossier

En clair, il s’agit de remplacer les anciens fichiers du thème par les nouveaux.

Vous pouvez même vérifier quels fichiers ont été modifiés avec git status et vérifier les différences dans les fichiers modifiés avec git diff mon-fichier.

Ensuite il faut commiter les modifications :

git add -A .
git commit -m "Mise à jour du thème en v1.1"

Ensuite pour mettre à jour le serveur

Encore une fois, avec dploy :

dploy test

Cette fois, après avoir renseigné le mot de passe, dploy vous indique la liste des fichiers modifiés, demande une confirmation et procède au transfert vers le serveur.

Le mot de la fin

Les principaux avantages de cette méthode sont :

  • pouvoir tracer facilement les fichiers modifiés
  • stocker différentes versions du thème pour pouvoir revenir à une version antérieure
  • gérer plusieurs environnements FTP
  • ne pas supprimer tout le thème sur le serveur en ne mettant à jour que les fichiers modifiés

Sinon vous pouvez aussi utiliser dploy pour gérer les thèmes (enfant ou non) que vous créez.

L'illustration de cet article est une image sous licence CC BY-SA 3.0 par Coyau

Cet article vous a été utile ? Partage it !

4 réflexions au sujet de « Mettre à jour facilement un thème WordPress premium avec dploy »

  1. Salut David,

    Il existe vraiment des thèmes premium modernes qui ne permettent pas de faire la mise à jour directement dans l’admin WordPress?
    Je n’en ai heureusement encore jamais vu.

    Amicalement,

    Bruno

  2. Dploy ! C’est la vie pour déployer !
    Je l’install toujours dans mes projets, un petit reproche c’est quand on est à plusieurs sur le projet, il se peut qu’il y aille des mini erreurs. Mais c’est le top !

    1. Bonjour Olivier,
      Personnellement j’ai plus rencontré d’erreurs avec les mises à jour manuelles, par Filezilla par exemple, qu’en automatisé avec dploy 🙂
      David

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Si vous le souhaitez, renseignez le champ 'Nom' de cette façon : 'VotreNom@VotreMotClef' pour obtenir une ancre optimisée pour les moteurs de recherche.