プラグインにインラインCSSを含めても大丈夫ですか?


21

通常、プラグインではwp_enqueue_styleを使用してスタイルを追加します。ただし、現在、CSSの数行のみを必要とするプラグインを作成しています。スタイルをインラインで提供してリクエストを保存する方が良いのではないかと考えています。明らかにwp_enqueue_styleを使用することには多くの利点がありますが、このような小さなCSSを追加でリクエストする価値はありますか?この分野で受け入れられている「ベストプラクティス」はありますか?

回答:


14

TL; DR; Enqueue

外部スタイルシートを使用する

  • PRO:すべてのスタイルが1つの場所にあります。
  • PRO: Webページのコーディングを削減します。
  • PRO:プラグインの保守が簡単になりました。
  • PRO:フックを使用してファイルの場所を変更できます。
  • PRO:フックを使用してファイルのキューを解除できます。
  • PRO:ミニファイスタイルを自動的に使用できます。
  • CON:追加のHTTP要求を追加する可能性があります(克服できる)。

インラインスタイルを使用する

  • PRO:適用されたスタイルを直接見ることができます。
  • PRO:追加のHTTP要求はありません。
  • CON:フックを使用してスタイルを変更することはできません。
  • CON:フックを使用してスタイルをキューから取り出すことはできません。
  • CON:スタイルをまったく縮小できません。
  • CON: スタイルをオーバーライドするには!importantが必要

通常、私は言うでしょう:確かに、あなたがそれを使用しているのがあなただけなら、先に進み、インラインでそれをしてください。しかし、あなたはコードが公開されることを意味するプラグインについて話しているので、拡張性を目指してください。今のところ、スタイリングの数行しかない:

  • CON:その少数がより多くなったらどうしますか?
  • CON:誰かがあなたのプラグインを拡張したらどうしますか?
  • CON:誰かがそれを変更したい場合はどうしますか?
  • CON: cssファイルで誰かが検索した場合はどうなりますか?
  • CON:誰かがそれを自動的に縮小したい場合はどうしますか?

したがって、エンキューします。(できれば、プラグインが必要とする場合のみ条件付きで。) JavaScriptにも同じことが当てはまります。(ただし、可能であればフッターに含める必要があります。)


バックエンドでインラインスタイルを使用しても大丈夫ですか?
シア

@bungeshea誰かがあなたのプラグインを変更しようとしている場合、彼らはバックエンドをあまりにも適切に変更したいかもしれません;)バックエンドでのみスクリプトをキューに入れるようにしてください。たとえば、function _your_enqueue( $hook )$ hookをテストして、オプションページにあるかどうかを確認できます。またはcurrent_screen()より単純なプロパティに使用できます。問題は、これを行うことが許可されていることですが、一般的な使用法は、サーバーサイドコード用の.phpファイルで構成されるプラグインであり、イメージ、.js、および.cssファイルがある場合とない場合があります。
Derkヤン

1
余分なhttpリクエストは克服できることに注意してください-これを明確にできますか?
ダスティン

2
できませんが、プラグインのユーザーはできます。ページが出力される直前に書き込まれたいくつかのプラグインと関数があり、すべてのエンキューされたスタイルを取得し、それらを縮小された結合ファイルに追加します。追加するCSSファイルの数に関係なく、ビューアには1つしか表示されません。JavaScriptについても同じです。ただし、これはあなたの場合の「問題」ではありません。最適化は不要であり、私見では、余分なHTTPリクエストはすべてのPROに対してちょっと不足しています。
Derkヤン

1
最後の文について-私の知る限りスタイルは、ヘッダー、フッターないで出力する必要があります
マーク・Kaplun

2

これに答えるのは難しく、公式の答えがあるかどうかは本当にわかりません。

私はリクエストを保存することに対する感情を理解していますが、インラインスタイルがほとんど常に勝ちます。テーマまたはエンドユーザーは、CSSの変更に苦労します。

それを念頭に置いて、私は公にリリースされたプラグインでこれを行うと思います...

  1. たとえば、スライドショーの場合のように、CSSがプラグインの機能にとって絶対に重要な場合。

  2. または、インラインCSSを変更または削除できるようにするフィルターもプラグインに含めた場合。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.