web-dev-qa-db-fra.com

Comment puis-je rendre la version JQuery par défaut de Wordpress "async"?

  1. Dans Wordpress, puis-je rendre jQuery par défaut "async"?
  2. Puis-je également changer la version par défaut (1.12.x) de Jquery pour la nouvelle (2.2.x)?

Voici la raison pour laquelle je demande:

 Page speed insights want defer or async jquery 

6
James

Donc, autant que je sache, WP ne supporte pas encore "async", pour les scripts. Ce qui signifie que la seule façon d’ajouter any script async est de les inclure directement dans le fichier d’en-tête (ou de pied de page) de votre thème ... Et cela va être un peu difficile à gérer, car un jquery nécessite beaucoup de scripts en file d'attente - mais comme il ne sera pas mis en file d'attente par WP, ils ne seront tout simplement pas imprimés ...

Je suggérerais d'aller "sync" - la plupart (tous?) WP les sites sont comme ça et fonctionnent bien. En tout cas, voici comment vous feriez ça ...

Tout d'abord, annulez l'enregistrement du WP jquery par défaut:

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');

Bien sûr, un autre avertissement important est de s’assurer que tout fonctionne avec la nouvelle version de jQuery ... Vous aurez probablement maintenant des thèmes ou des plugins (même WP lui-même) attendant une version plus ancienne de jQuery, et pas comme la nouvelle version un bit ...

J'espère que cela t'aides!

5
MacPrawn