Ich habe jQuery-Setup in meinem Abschnitt mit den Enqueue-Skripten als Abhängigkeit eingerichtet, z. B .:
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'scripts', get_template_directory_uri() . '/js/scripts.min.js', array( 'jquery' ) );
Jetzt möchte ich jquery-migrate entfernen, aber jQuery selbst offensichtlich behalten, und so habe ich diese Antwort gefunden, um es so zu machen:
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' );
}
}
Erstens dachte ich, wir hätten jQuery migrate hier entfernt, also bin ich mir nicht sicher, welche Notwendigkeit das Hinzufügen der neuesten Version mit dem Kommentar hat:
1.2.1 = neueste Version von jquery-migrate
Zweitens, wie wirkt sich das bei der Einrichtung meiner Enqueue-Skripte auf die Abhängigkeiten aus, da ich jetzt jQuery
entfernt und jquery-core
hinzugefügt habe?
Gibt es eine bessere Möglichkeit, damit umzugehen?
OK, also in deinem Theme/Plugin hast du:
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'scripts', get_template_directory_uri() . '/js/scripts.min.js', array( 'jquery' ) );
Die erste Zeile, in der jquery
in die Warteschlange gestellt wird, ist nicht erforderlich - Sie setzen jquery
als Abhängigkeit in die zweite Zeile, sodass sie trotzdem eingeschlossen wird.
Diese Zeilen informieren WP, dass Sie eine bestimmte Datei als scripts
in die Warteschlange einreihen möchten, und dass ein Skript mit dem Handle jquery
registriert sein muss. Daher wird es automatisch vor Ihrem Skript in die Warteschlange gestellt.
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' );
}
}
Wie Sie in Plugin API/Action Reference sehen können, heißt dieser Hook ziemlich früh ... Waaaaay vor wp_enqueue_scripts
.
Und was macht es wirklich?
Es entfernt das Skript mit dem Handle jquery
aus den Standardskripten und fügt es dann mit verschiedenen Abhängigkeiten hinzu (nur jquery-core
).
Die Methode add
stammt aus WP_Dependencies
class:
WP_Dependencies::add( string $handle, string $src, array $deps = array(), string|bool|null $ver = false, mixed $args = null )
Die Version 1.2.1
ist nur ein Cache-Booster. WordPress analysiert es nicht. Es wird als ?ver
param verwendet, daher müssen Browser diese Datei neu laden, wenn sich die Version ändert ... Sie können alles dort einfügen - natürlich ist es eine gute Idee, eine echte Version eines gegebenen Skripts zu verwenden;)