web-dev-qa-db-ja.com

テーマのカスタマイズとsass変数を処理する方法

TL; DR: 管理者がテーマのカスタマイズ設定を保存するたびに、運用サーバーでgulpを実行しますか?

こんにちは、

私は長い間gulp + sass + WordPressを使ってきました。そして今、私はエンドユーザーが カスタマイザ を通して色を変えることができるテーマを開発しています。

私は私のすべての色とものでvariables.scssを持つことに慣れています。

私の最初のステップは、variables.scssに対するアクションを介して、このcustomize_save_afterにカスタマイザ変数を追加することでした。

もちろん、のように動作します。カスタマイザで選択したすべての色をvariables.scssに書き込み、開発マシンでgulpを実行すると、正しい値が得られます。

私は生産機械を考えていなかった以外は。

現在のワークフローでは、色とフォントにsass変数を使い続ける方法が見当たらないので、私の生産マシンにgulpをインストールするつもりはありませんでした。

私はそれを解決して、すべての問題のあるスタイルを通常の.cssの後に依存するような通常のmain.cssファイルに変換することができますが、それは大きな一歩後退のように思えます。

私は基本色で遊ぶためにたくさんのsass関数(暗くする、明るくする、透明にする…)を使っているので、すべてをだけでなくコンパイルされていないスタイルシートに移動します。

これが一般的なプログラミングの質問であれば、私は ソフトウェアエンジニアリングスタック交換 に投稿します。通常のstack overflowには投稿しません。しかし、それがcode問題ではないとしても、WordPressを中心にしているので、ソフトウェア工学よりもここによくフィットします。

ありがとうございます。

2
Miquel Adell

はい、そうです。 gulpは非常に軽量なので、運用サーバーで実行し続け、バックグラウンドでscssファイルを監視するのに問題はありません。

しかし、なんらかの理由で本番サーバーが制御不能になった場合、または追加のソフトウェアをインストールしたくない場合は、もちろん PHP scssコンパイラ を使用してテーマに添付することができますカスタマイザ変更のためにscssファイルをcssに再コンパイルするためのfunctions.phpファイル。

customize_save_after フックを使用してカスタマイザの変更を監視してからscssコンパイラを実行できます。こうすることで、誰かがカスタマイザに変更を加えるたびに、あなたのcssファイルの変更を反映するためにscssファイルを再コンパイルすることができます。

1
Fayaz

私はポイント不足のためにコメントすることができません、しかしこれが「完全な」解決策ではないことを恐れてください。

このSCSSPHPライブラリをここで調べることができます: http://leafo.net/scssphp/

Gulpを使わなくてもSCSSをコンパイルできます。

1
Doug Belchamber