it-swarm.com.de

JQuery migrate entfernen und mit Abhängigkeiten arbeiten

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?

2
Brett

Erster Teil...

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.

Und der zweite Teil ...

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 )

Und warum diese Version?

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

1