Cómo detener jQuery.migrate manualmente

21 ene 2018, 12:44:38
Vistas: 15.3K
Votos: 7

WordPress carga jQuery.migrate automáticamente:

¿Cómo puedo desactivarlo sin plugins? No encontré código en functions.php con enqueue.

Se carga desde /wp-includes. ¿Cómo puedo deshabilitarlo?

php
3
Comentarios

Mala idea. El núcleo de WordPress necesita jQuery.

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

¿En qué página quieres desactivar jQuery?

mmm mmm
21 ene 2018 12:49:29

@FrankP.Walentynowicz jQuery Migrate no es todo jQuery. Es un script de migración que no suele ser necesario en la mayoría de casos.

swissspidy swissspidy
21 ene 2018 16:36:59
Todas las respuestas a la pregunta 2
0
26

jQuery Migrate no es más que una dependencia del script jQuery en WordPress, por lo que se puede eliminar fácilmente esa dependencia.

El código para hacerlo es bastante sencillo:

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

Esto evitará que el script jQuery Migrate se cargue en el frontend mientras mantiene intacto el script jQuery en sí. Todavía se carga en el área de administración para no romper nada allí.

En caso de que no desees agregar esto en tu propio plugin o tema, puedes usar un plugin como jQuery Light que hace esto por ti.

21 ene 2018 16:46:26
1

WordPress permite "desregistrar" un complemento, utilizando un proceso similar al mencionado por @swissspidy, pero con menos código.

En cualquier función donde estés encolando tus complementos, agrega esta línea:

wp_deregister_script('jquery-migrate');

Esto asume que jQuery Migrate está encolado con el identificador jquery-migrate, que es el valor predeterminado en WordPress.

Aquí hay un ejemplo de mi función de encolado con la acción de 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 jun 2021 18:53:39
Comentarios

Supongo que eso funciona bien, pero te encontrarás con el escenario en el que WP está escribiendo scripts en la página, llega a jquery y descubre que no puede satisfacer todas sus dependencias porque no sabe qué es jquery-migrate, que es una dependencia de jquery. Lo cual -a primera vista- significa que tampoco generará jquery-core, que creo que aún queríamos. Eso es lo que el código más complicado de swissspidy estaba solucionando.

Rup Rup
17 jun 2021 19:16:59