Cum să oprești manual jQuery.migrate în WordPress

21 ian. 2018, 12:44:38
Vizualizări: 15.3K
Voturi: 7

WordPress încarcă automat jQuery.migrate:

Cum pot să-l dezactivez fără plugin-uri? Nu am găsit cod în functions.php cu enqueue.

Se încarcă din /wp-includes. Cum pot să-l opresc?

php
3
Comentarii

Ideea foarte proastă. Nucleul WordPress are nevoie de jQuery.

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

pe ce pagină dorești să dezactivezi jQuery?

mmm mmm
21 ian. 2018 12:49:29

@FrankP.Walentynowicz jQuery Migrate nu este întregul jQuery. Este un script de migrare care de cele mai multe ori nu este necesar.

swissspidy swissspidy
21 ian. 2018 16:36:59
Toate răspunsurile la întrebare 2
0
26

jQuery Migrate nu este altceva decât o dependință a scriptului jQuery în WordPress, așa că se poate elimina această dependință cu ușurință.

Codul pentru aceasta este destul de simplu:

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

Aceasta va împiedica încărcarea scriptului jQuery Migrate în partea de front-end, păstrând în același timp scriptul jQuery intact. Acesta va continua să se încarce în administrare pentru a nu afecta funcționalitățile.

În cazul în care nu doriți să adăugați acest cod în propriul plugin sau temă, puteți utiliza un plugin precum jQuery Light care face acest lucru pentru dumneavoastră.

21 ian. 2018 16:46:26
1

WordPress permite "anularea înregistrării" unui plugin, folosind un proces similar cu cel menționat de @swissspidy, dar cu mai puțin cod.

În orice funcție în care încărcați pluginurile, adăugați această linie:

wp_deregister_script('jquery-migrate');

Aceasta presupune că jQuery Migrate este încărcat cu identificatorul jquery-migrate, care este valoarea implicită în WordPress.

Iată un exemplu al funcției mele de încărcare cu acțiunea 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 iun. 2021 18:53:39
Comentarii

Presupun că funcționează OK, dar vei întâlni scenariul în care WP scrie scripturi pe pagină, ajunge la jQuery și descoperă că nu poate satisface toate dependențele sale pentru că nu știe ce este jquery-migrate, care este o dependință a jQuery. La prima vedere, asta înseamnă că nici măcar jquery-core nu va fi afișat, ceea ce cred că încă doream. Aceasta este problema pe care codul mai complicat al lui swissspidy o rezolva.

Rup Rup
17 iun. 2021 19:16:59