Installer un child theme WordPress nesté dans un repository Git

Quand on veut personnaliser un thème WordPress, la bonne pratique est d’utiliser un child theme. On peut ainsi ajouter nos propres fichiers CSS, JavaScript ou même overrider des fichiers PHP du thème parent sans pour autant tout perdre lors d’une mise à jour de celui-ci.

Une autre bonne pratique pour tout développeur qui se respecte, c’est évidemment de versionner les fichiers de notre child theme avec Git. On peut ainsi faire toutes les modifications qu’on veut en local, commiter et faire un simple git pull sur le serveur WordPress pour récupérer la dernière version du code.

C’est bien, mais cela implique d’avoir les fichiers du child theme à la racine du repository : s’il est caché au fond d’une arborescence, WordPress ne trouvera pas les fichiers style.css et functions.php nécessaires à son activation.

Dans mon cas, j’ai par exemple à la racine de mon repository Git un fichier docker-compose.yml pour pouvoir lancer rapidement un serveur en local, un répertoire qui contient des images d’illustration et enfin le répertoire du child theme :

- nereo-website/
    - graphics/
    - theme-child/
    - .gitignore
    - docker-compose.yml

Comment faire donc pour pouvoir installer notre child theme dans le répertoire des thèmes de WordPress tout en pouvant mettre à jour le code en faisant un git pull ? L’astuce consiste à cloner le repository dans un dossier quelconque, par exemple le répertoire home, et à monter le répertoire du child theme dans le répertoire thèmes de WordPress :

mkdir /var/www/html/wp-content/themes/theme-child # Le point de montage doit être déjà créé
mount --bind ~/nereo-website/theme-child /var/www/html/wp-content/themes/theme-child # À adapter bien évidemment avec le chemin de votre WordPress

Et voilà ! Maintenant, il suffira de faire un git pull dans le repository et votre child theme WordPress sera automatiquement mis à jour. Ça marche aussi en sens inverse : si vous faites des modifications depuis l’éditeur de WordPress, Git va le détecter et vous pourrez commiter ces changements.