web-dev-qa-db-fra.com

Comment gérer la personnalisation du thème et les variables sass

TL; DR: voudriez-vous exécuter gulp sur un serveur de production chaque fois qu'un administrateur enregistre les paramètres de personnalisation du thème?

Salut,

J'utilise gulp + sass + WordPress depuis un certain temps et je développe maintenant un thème dans lequel l'utilisateur final pourra changer les couleurs via le personnaliseur .

Je suis habitué à avoir un variables.scss avec toutes mes couleurs et tout le reste.

Ma première étape a été d'amorcer ce variables.scss avec les variables de personnalisation via une action sur customize_save_after.

Bien sûr, cela fonctionne comme dans j'ai toutes les couleurs que j'ai choisies dans le personnaliseur inscrites dans mon variables.scss et lorsque je lance gulp sur ma machine de développement, il obtient les valeurs corret et tout est génial ...

Sauf que je n'ai pas pensé à la machine de production.

Je n'avais pas l'intention d'installer gulp sur ma machine de production. Par conséquent, avec mon flux de travail actuel, je ne vois pas comment continuer à utiliser des variables sass pour les couleurs et les polices.

Je sais que je peux le résoudre en récupérant tous les styles afectd dans un fichier .css normal qui serait ajouté après le main.css compilé régulier, mais cela semble être un grand pas en arrière.

J'utilise beaucoup de fonctions sass (assombrir, éclaircir, rendre transparent…) pour jouer avec les couleurs de base, donc ce n'est pas juste déplacer tout dans une feuille de style non compilée.

Si c’était une question de programmation générale, je posterais que sur logiciel échangeant pile stack , pas sur pile débordement mais j’imagine même si ce n’est pas un problème code , étant tellement centré sur WordPress, il s’adapte mieux ici que sur le génie logiciel.

Merci!

3
Miquel Adell

Oui je voudrais. gulp est très léger et je ne vois aucun problème à le garder en cours d'exécution sur le serveur de production et à regarder mes fichiers scss en arrière-plan.

Cependant, si pour une raison quelconque le serveur de production est hors de votre contrôle ou si vous ne souhaitez pas installer de logiciel supplémentaire, vous pouvez bien sûr utiliser un compilateur PHP scss et le joindre au thème de votre thème. functions.php fichier pour recompiler le fichier scss en css pour les modifications du personnaliseur.

Vous pouvez utiliser le customize_save_after hook pour surveiller les modifications du personnalisateur, puis exécuter le compilateur scss. Ainsi, chaque fois que quelqu'un modifie le personnaliseur, vous pourrez recompiler le fichier scss pour refléter les modifications apportées à votre fichier css.

1
Fayaz

Je suis incapable de commenter en raison du manque de points, mais je crains que cette solution ne soit pas "complète".

Vous pouvez explorer cette bibliothèque SCSSPHP ici: http://leafo.net/scssphp/

Il pourrait compiler SCSS pour vous, sans Gulp.

1
Doug Belchamber