web-dev-qa-db-ja.com

テーマオプションに保存されたカスタムスタイルを使用する方法

私はユーザーが設定APIを通してテーマカスタマイザからカスタムスタイルを保存できるテーマを作成しています。これらのスタイル情報は、シリアル化されたデータとしてオプションテーブルに保存されています。

カスタムスキンがアクティブなとき、私はサイトでそれらのCSSスタイルを印刷しなければならないでしょう。私がそれについて取り組むかもしれない3つのルートがあります。

  1. <style>タグを使用してヘッダー領域にカスタムスタイルを印刷します。
  2. これらのスタイルを印刷する場所にcustom.css.phpファイルを作成します。
  3. Phpファイル操作を使用してCSSファイルを作成し、ユーザーがカスタムスタイルを保存するたびにそれらのスタイルを保存します。

これらすべてに長所と短所があります

  1. <head>を使用して<style>内に印刷するこのテーマはインターネットマーケティング担当者によって使用され、コードとテキストの比率が心配になります。 20〜30行のCSSコードを追加すると、コード比率が上がります。
  2. PHP header()を使用してCSSファイルを作成する:Wordpressの機能は使用できません。それらをロードする必要がありますが、これは非効率的です。また IEはこのメソッドにいくつか問題があります

  3. ユーザーがカスタムスタイルを保存するたびにCSSファイルを書く:それは良い考えのようです。しかし、私はこの方法の長所と短所が何であるかについて十分な知識がありません。そして、許可の問題がある場合、テーマがユーザーによってさまざまなサーバーにインストールされたときに直面する可能性があります。 この話題について私に啓発できれば幸いです

だから、この状況でうまくいくための正しい方法は何ですか。

6
Sisir

ユーザーが30行のカスタムCSSを本当に必要としている場合、テーマに欠陥があります。代わりに、一連の定義済みスタイル(濃淡の設定、Sans、Serifフォントなど)を作成し、これらの場合に対応するメインスタイルシートを準備してください。 body_classにフックして、これらのスタイルを取得するために必要なクラスを追加することができます。
それであなたのユーザーのための調整は非常に最小限であるべきです。

PHP生成スタイルシートに エンドポイントを使用する は、2番目のオプションのようなものです。これはIEの問題ではなく、キャッシュプラグインは処理時間をさらに短縮するのに役立ちます。最後の変更のタイムスタンプをエンドポイントに使用します。

example.com/css/012345678/

ブラウザが最新のスタイルシートを確実に取得し、がファイルを正しくキャッシュするようにします。

オプション3とは、 Filesystem API でファイルを保存する必要があります。後で削除されないように注意する必要があります。また、CSSファイルが大量になるのを防ぐため、古いファイルを置き換えます。追加のGETパラメータなしで新しいファイルをキャッシュされたファイルに置き換えることを強制することも簡単ではありません。

エンドポイントを使用してください。

3
fuxia