web-dev-qa-db-ja.com

デフォルトのjqueryバージョンのWordpressを "async"にするにはどうすればよいですか?

  1. Wordpressでは、デフォルトのjqueryを "async"にすることができますか?
  2. また、Jqueryのデフォルトバージョン(1.12.x)を新しいバージョン(2.2.x)に変更できますか?

以下が私が尋ねる理由です:

Page speed insights want defer or async jquery 

6
James

私の知る限りでは、WPはスクリプトのためにまだ "async"をサポートしていません。つまり、 any scriptの非同期を追加することができる唯一の方法は、それらをテーマのヘッダー(またはフッター)ファイルに直接含めることです...そして、それは管理するのが少し難しくなります。キューに入れられたスクリプトの多くはjqueryを必要とするでしょう - しかしそれはWPによってキューに入れられないので、そしてそれらは単に印刷されません...

私は「同期」することをお勧めします - ほとんどの(すべての)WPサイトはこのようなもので、うまく機能しています。いずれにせよ、これはあなたがこれを行う方法です...

まず、デフォルトのWP jqueryの登録を解除します。

function replace_jquery() {
  if(wp_script_is('jquery', 'registered')) wp_deregister_script('jquery');
  // I suggest forgetting about "Async" and qneuing your new jquery here:
  $new_jquery_location = '//code.jquery.com/jquery-2.2.4.min.js'; // could be a local file, whatever you like...
  $in_footer = true; // or false, your choice...
  wp_register_script('jquery', $new_jquery_location, array(), '', $in_footer);
  wp_enqueue_script('jquery');
}

add_action('wp_enqueue_scripts', 'replace_jquery');
add_action('admin_enqueue_scripts', 'replace_jquery');

もちろん、ここでのもう1つの大きな警告は、すべてが新しいjQueryバージョンで動作することを確認することです。おそらく、古いバージョンのjQueryを期待するテーマやプラグイン(WP自体も)があるでしょう新バージョン1ビット...

お役に立てれば!

5
MacPrawn