Je développe un WP thème auquel je fais référence par foobar
pour les besoins de cette question. Il est situé dans /var/www/html/wp-content/themes/foobar
. Pour le moment, je l’active via la page Web wp-admin
et les modifications sont mises en ligne dès que j’enregistre les fichiers correspondants, ce qui correspond au comportement souhaité.
Maintenant, je veux utiliser wp-cli
pour activer mon thème afin de rationaliser le déploiement. Cependant, jusqu'à présent, je n'ai pas pu le faire:
$ wp theme activate foobar
Error: Stylesheet is missing.
Ceci est déroutant car la feuille de style existe:
$ file /var/www/html/wp-content/themes/foobar/style.css
/var/www/html/wp-content/themes/foobar/style.css: ASCII text, with CRLF line terminators
Lorsque je regarde la liste des thèmes, foobar
:
$ wp theme list
+-----------------+----------+--------+---------+
| name | status | update | version |
+-----------------+----------+--------+---------+
| twentyfifteen | active | none | 2.0 |
| twentyseventeen | inactive | none | 1.7 |
| twentysixteen | inactive | none | 1.5 |
+-----------------+----------+--------+---------+
J'ai vérifié que foobar
est affiché dans wp-admin
et je pouvais l'activer via un clic du bouton. Liste de thèmes après avoir activé foobar
:
$ wp theme list
+-----------------+----------+--------+---------+
| name | status | update | version |
+-----------------+----------+--------+---------+
| twentyfifteen | inactive | none | 2.0 |
| twentyseventeen | inactive | none | 1.7 |
| twentysixteen | inactive | none | 1.5 |
+-----------------+----------+--------+---------+
A recherché des problèmes wp-cli
dans Github et sur ce StackExchange mais n’a rien trouvé qui puisse sembler pertinent. Je ne peux pas héberger le thème sur Wordpress.org et je préfère ne pas le compresser car cela ralentirait le développement. Peut-être que je manque quelque chose d'évident ici.
Mes questions:
wp-cli
ne voit-il pas mon thème mais plutôt wp-admin
?[S/O à @TomJNowell dont les commentaires m'ont aidé à localiser le problème. Partager au cas où cela pourrait aider les autres à résoudre un problème similaire]
Dans ma configuration, j'utilise deux conteneurs Docker avec des images différentes:
wordpress:4.9
: wp
conteneurwordpesss:cli
: wp-cli
conteneurAfin de permettre au conteneur wp-cli
d'accéder à la configuration Wordpress, aux fichiers, etc., je les ai configurés pour partager un volume nommé monté sur /var/www/html/
.
Pour la plupart, cela a fonctionné comme prévu. Cependant, j'ai découvert que le montage de volume /var/www/html/wp-content/themes/foobar
-> (local theme dir)
était uniquement configuré pour le conteneur wp
et non pas wp-cli
. Cela explique pourquoi la commande wp
:
Lorsque je vérifiais que le répertoire de thèmes existait, je ne regardais que le conteneur wp
et non le wp-cli
car je supposais que les deux volumes avaient les mêmes volumes montés.
Une fois que j'ai modifié la configuration du menu fixe et monté le répertoire du thème sur wp-cli
, tout a fonctionné comme prévu.
Remarque: Une fois que j'ai découvert mon erreur, j'ai testé la commande dans plusieurs CWD, y compris root (/
). Chaque fois j'ai reçu les mêmes résultats.