web-dev-qa-db-ja.com

<head>の終わりにwp_enqueue_scriptsを強制的にロードする方法を教えてください。

私は私の子供のテーマでwp_enqueue_scripts経由でスクリプトを読み込んでいます。

唯一の問題は、私のstyle.cssスクリプトがプラグインスクリプトの前にロードされることです、それでも私は私のstyle.cssでプラグインのcssをオーバーライドする必要があります。

私はすべてのCSSスタイルに「!important」を追加したくありません。これは面倒で、私のスタイルの一部を壊す可能性があるためです。

優先度を追加しようとしましたが、ロード順序にまったく影響しませんでした。

    add_action('wp_enqueue_scripts', 'scripts', 9999);

ヘッダーの最後、</ head>の直前に単にwp_enqueue_scriptsを付けたいと思います。どうすればそれができますか?ありがとう:-)

更新:

ええ、私はそれを考え出しました!

単にフィルタを登録します。

    add_action('wp_print_styles', 'scripts');

wp_print_stylesは優先順位8でロードされますが、wp_headの一部であるため、ヘッダーに配置されます。

私はwp-includes/default-filters.phpを見ることによってこれを考え出しました、それで先端をありがとう! :-)

5
Nate

デフォルトでwp_enqueue_scriptsが追加され、優先順位は1からwp_headになります。詳細はwp-includes/default-filters.phpをご覧ください。

優先順位を変更することができます。

remove_action( 'wp_head', 'wp_enqueue_scripts', 1 );
add_action( 'wp_head', 'wp_enqueue_scripts', 9999 );

しかし、私はそれをお勧めしません。デフォルト値にはおそらく正当な理由があります。これを変更すると、スクリプトによっては動作しなくなる可能性があります。

5
fuxia

もっとWordPressにやさしい方法は wp_enqueue_styles() $ depsパラメータを使うことだと思います。プラグインのスタイルがwp_enqueue_styles()でエンキューされていると仮定して(確かに、哀れなことにはほとんどありません)、あなたは自分のスタイルが依存するスタイルシートハンドルの配列をリストし、その後それらはロードします。

1
mrwweb