3

私はWordpressを使用しています。組み込みのjQueryライブラリが付属しています。プラグインをインストールすると、別のバージョンが入ってきます。自分のコードを書くことを学び、チュートリアルで別のバージョンをインストールするように求められます!

この記事を書いている時点で、おそらく 4 ~ 5 バージョンの jQuery ライブラリがインストールされています。

気が狂いそう!それほど多くは必要ないと思います。最高のパフォーマンスを得るには、Google CDN から最新のものが必要なだけなので、この行を php ファイルに入れましたが、キャッシュをクリアした後でもどこにも表示されなかったようです。 .

function mytheme_jquery_enqueue(){
    if(!is_admin()){
        wp_deregister_script('jquery');
        wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js", false, null);
        wp_enqueue_script('jquery');  
    }
}
add_action('wp_enqueue_scripts', 'mytheme_jquery_enqueue');   

どうすればそれを修正し、他の不要なバージョンをすべて取り除くことができますか?

4

1 に答える 1

2

まず、フックの優先度を低くしてみてください。例:

add_action( 'wp_enqueue_scripts', 'mytheme_jquery_enqueue', 99999 ); 

このように、一部のプラグインに優先順位がない限り、実行するのは最新になります9999999...それは競馬です...


次に、プラグインでjQueryをエンキューします

コード(またはテーマのコード)がjQueryの登録を解除し、別の場所(Google)から再登録する場合は、次の場所に追加する必要があります。

jQuery.noConflict(); 

これにより、jQueryは、$変数をグローバルに定義しようとする他のスクリプト(つまり、プロトタイプ)と連携します。WordPressにはこの行がバージョンにバンドルされていますが、Googleにはバンドルされていません。


ただし、CDNを自分でキューに入れるよりも、次のプラグインを使用することをお勧めします:Googleライブラリを使用します。コア開発者によると:

そのメソッドを使用して、GoogleのjQueryスクリプトを含めないでください。上記は機能せず、他の問題とともに、他のスクリプトとの競合を引き起こします。Googleがホストするバージョンのライブラリを使用する場合は、代わりに「UseGoogleLibraries」プラグインを使用してください。このプラグインはそれを正しく行い、頻繁に更新されます。上記の方法は表面的にしか機能せず、将来的に問題が発生します。–オットー2012年7月29日15:57


次に、他のjQueryライブラリをロードしてWordPressにバンドルされているライブラリを使用することは実際には推奨されないという問題があります。その場合remove_actionwp_deregister_scriptまたはを使用して、wp_dequeue_scriptこれらすべてのプラグインまたはテーマがそれらのバージョンをロードしないようにする必要があります。

WordPressのjQueryをデキューしないでください

WordPress Stack Exchangeのモデレーターとして、私はサイトで多くの時間を費やすことになります。たくさんの素晴らしい質問、たくさんのそれほど素晴らしい質問、そしてあなたが冗談を言っている質問がいくつかあります。しかし、私が最もよく目にする質問は私を苛立たせます:

WordPressのjQueryを削除し、代わりにGoogleのCDNバージョンを使用するにはどうすればよいですか?

あなたがこの質問をしているなら、あなたはそもそもウェブサイトを構築するビジネスを持っていないと言っても問題ありません。

于 2013-02-09T21:32:46.740 に答える