web-dev-qa-db-ja.com

テーマのスタイルシートに応じてwp_enqueue_styleに渡るべきパラメータは何ですか?

スタイルシートを含めるために wp_enqueue_style を使用する基本的な ギャラリープラグイン を書きました。ページ上。 WordPressテーマがプラグインのスタイルをオーバーライドできるようにしたいのですが、これは自分のプラグインがNiceをプレイしてcssファイルを出力する前にテーマcssファイルが欲しいことを意味します。

wp_enqueue_style には、まさにこの要件を満たすdepsパラメータがあります。私の質問は、「themes css fileに依存します」と言いたい場合、depsパラメーターにどのような値を使用すべきかということです。

現在のプラグインコードはfalseパラメータにdepsを使用しているため、正しくありません。

   // Enqueue a CSS style file - see http://codex.wordpress.org/Function_Reference/wp_enqueue_style                                                         
   wp_enqueue_style('bitvol_galleria_css', BITVOL_GALLERIA_URL . '/bitvolution-image-galleria.css', false, $this->bitvol_galleria_version, 'all' );
1
Tom

最初の問題 - あなたは逆方向に依存しています。何かに依存するということは、依存関係を after 依存関係でロードすることを意味します。

2番目の問題 - テーマのスタイルシートは実際にはエンキューを使用しません、それは通常テーマのheader.phpファイルに直接コード化されています。そしてそれはwp_head()呼び出しの前に来るようです - あなたのスタイルシートがそれの上にあることを保証するためのフックはありません。

そのため、これは一般的にあなたの 回避策 - それを無効にするオプション付きのスタイルシートとadminのオプションのように扱われます。

2
Rarst

私は私が質問に対する答えを知るまで私が使っている自分の回避策を投稿すると思っていました….

私の回避策は次のとおりです。

  1. CSSコードをプラグインからテーマ(style.css)にカットアンドペーストし、必要に応じて修正します。
  2. functions.phpで登録解除することで、プラグインがスタイルシートを出力しないようにテーマを設定します。

functions.phpに入れるコード:

add_action( 'wp_print_styles', 'my_deregister_styles', 100 );

function my_deregister_styles() {
  wp_deregister_style( 'bitvol_galleria_css' );
}

いくつかの点で、この回避策がより良い解決策になりますか? (HEADセクションに含まれるCSSリソースの数を最小限に抑えることでWebサイトのパフォーマンスが向上するため)。

1
Tom