web-dev-qa-db-fra.com

wp-cli: Pour le développement, comment activer un thème situé sur le disque local mais non compressé?

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:

  1. Pourquoi wp-cli ne voit-il pas mon thème mais plutôt wp-admin?
  2. Peut-être lié à la question précédente: pourquoi se plaint-il de l'absence de la feuille de style lorsqu'elle est là?
  3. Quel serait le meilleur moyen d'activer un thème situé sur le disque local pour le développement avec un minimum de friction (c'est-à-dire, de préférence, ne nécessitant pas de re-Zip après les modifications)?
1
Belmin Fernandez

[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 conteneur
  • wordpesss:cli: wp-cli conteneur

Afin 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:

  1. Impossible de trouver la feuille de style
  2. Ne listait pas le thème local

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.

0
Belmin Fernandez