La configuration de jQuery dans ma section de scripts de mise en file d'attente est une dépendance, telle que:
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'scripts', get_template_directory_uri() . '/js/scripts.min.js', array( 'jquery' ) );
Maintenant, je veux supprimer jquery-migrate, mais garder jQuery lui-même évidemment, donc j'ai trouvé cette réponse déclarant de le faire comme ceci:
add_filter( 'wp_default_scripts', 'remove_jquery_migrate' );
function remove_jquery_migrate( &$scripts){
if(!is_admin()){
$scripts->remove( 'jquery');
$scripts->add( 'jquery', false, array( 'jquery-core' ), '1.2.1' );
}
}
Tout d'abord, je pensais que nous avions supprimé jQuery migrate ici, donc je ne sais pas trop pourquoi il est nécessaire d'ajouter la dernière version avec le commentaire:
1.2.1 = dernière version de jquery-migrate
Deuxièmement, avec la façon dont j'ai configuré mes scripts de mise en file d'attente, en quoi cela affecte-t-il les dépendances puisque j'ai maintenant supprimé jQuery
et ajouté jquery-core
?
Y a-t-il une meilleure façon de gérer cela?
OK, donc dans votre thème/plugin vous avez:
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'scripts', get_template_directory_uri() . '/js/scripts.min.js', array( 'jquery' ) );
La première ligne, mettre en file d'attente jquery
n'est pas nécessaire - vous mettez jquery
comme dépendance dans la deuxième ligne, elle sera donc incluse de toute façon.
Ces lignes informent WP que vous souhaitez mettre en file d'attente le fichier donné sous la forme scripts
et que le script doit être enregistré avec le handle jquery
- il sera donc automatiquement mis en file d'attente avant votre script.
add_filter( 'wp_default_scripts', 'remove_jquery_migrate' );
function remove_jquery_migrate( &$scripts){
if(!is_admin()){
$scripts->remove( 'jquery');
$scripts->add( 'jquery', false, array( 'jquery-core' ), '1.2.1' );
}
}
Comme vous pouvez le voir dans Plugin API/Action Reference , ce hook s'appelle assez tôt ... Waaaaay avant wp_enqueue_scripts
.
Et qu'est-ce qu'il fait vraiment?
Il supprime le script avec le descripteur jquery
des scripts par défaut, puis l'ajoute avec différentes dépendances (uniquement jquery-core
).
La méthode add
vient de WP_Dependencies
class:
WP_Dependencies::add( string $handle, string $src, array $deps = array(), string|bool|null $ver = false, mixed $args = null )
La version 1.2.1
est juste un rappel de cache. WordPress ne l'analyse pas. Il est utilisé en tant que paramètre ?ver
, de sorte que les navigateurs doivent recharger ce fichier lorsque la version change ... Vous pouvez y insérer n'importe quoi - bien sûr, utiliser une version réelle d'un script donné est une bonne idée;)