Come disabilitare manualmente jQuery.migrate

21 gen 2018, 12:44:38
Visualizzazioni: 15.3K
Voti: 7

WordPress carica automaticamente jQuery.migrate:

Come posso disabilitarlo senza usare plugin? Non ho trovato codice in functions.php con enqueue.

Viene caricato da /wp-includes. Come posso disabilitarlo?

php
3
Commenti

Brutta idea. Il core di WordPress ha bisogno di jQuery.

Frank P. Walentynowicz Frank P. Walentynowicz
21 gen 2018 12:48:13

Su quale pagina vuoi disabilitare jQuery?

mmm mmm
21 gen 2018 12:49:29

@FrankP.Walentynowicz jQuery Migrate non è tutto jQuery. È uno script di migrazione che spesso non è necessario.

swissspidy swissspidy
21 gen 2018 16:36:59
Tutte le risposte alla domanda 2
0
26

jQuery Migrate non è altro che una dipendenza dello script jQuery in WordPress, quindi è possibile semplicemente rimuovere tale dipendenza.

Il codice per farlo è piuttosto semplice:

function dequeue_jquery_migrate( $scripts ) {
    if ( ! is_admin() && ! empty( $scripts->registered['jquery'] ) ) {
        $scripts->registered['jquery']->deps = array_diff(
            $scripts->registered['jquery']->deps,
            [ 'jquery-migrate' ]
        );
    }
}
add_action( 'wp_default_scripts', 'dequeue_jquery_migrate' );

Questo impedirà il caricamento dello script jQuery Migrate sul front end mantenendo intatto lo script jQuery stesso. Continuerà a essere caricato nell'area di amministrazione per non interrompere nulla lì.

Nel caso in cui non si voglia inserire questo codice nel proprio plugin o tema, è possibile utilizzare un plugin come jQuery Light che fa questo al posto tuo.

21 gen 2018 16:46:26
1

WordPress supporta la "deregistrazione" di un plugin, utilizzando un processo simile a quello menzionato da @swissspidy, ma con meno codice.

In qualsiasi funzione tu stia caricando i tuoi plugin, aggiungi questa riga:

wp_deregister_script('jquery-migrate');

Questo presuppone che jQuery Migrate sia caricato con l'handle jquery-migrate, che è il valore predefinito in WordPress.

Ecco un esempio della mia funzione Enqueue con l'azione WP:

function my_theme_enqueue_styles_and_scripts() {
    wp_enqueue_style('my-theme-styles', 'dist/styles.css');

    wp_deregister_script('jquery-migrate');
    wp_enqueue_script('my-theme-scripts', 'dist/scripts.js');

}
add_action('wp_enqueue_scripts', 'my_theme_enqueue_styles_and_scripts', 99);
17 giu 2021 18:53:39
Commenti

Presumo che funzioni correttamente, ma ti imbatterai nello scenario in cui WordPress sta scrivendo script nella pagina, arriva a jQuery e scopre che non può soddisfare tutte le sue dipendenze perché non sa cosa sia jquery-migrate, che è una dipendenza di jQuery. A prima vista, questo significa che non produrrà nemmeno jquery-core, che penso volessimo ancora mantenere. È questo che il codice più complesso di swissspidy stava risolvendo.

Rup Rup
17 giu 2021 19:16:59