¿Cómo detengo que WordPress cargue jQuery y jQuery-migrate?

2 minutos de lectura

avatar de usuario
usuario2227359

WordPress está cargando los siguientes 2 archivos en wp_head():

<script type="text/javascript" src="http://example.com/wp-includes/js/jquery/jquery.js?ver=1.10.2"></script>
<script type="text/javascript" src="http://example.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.2.1"></script>

En un intento por evitar que esto suceda, intenté desactivar todos los complementos y anular el registro de jQuery en functions.php, pero nada parece eliminarlo.

¿Alguna idea de cómo puedo detener esto?

Estoy usando WordPress v3.6.

Es posible que desee utilizar esto en su functions.php

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

1.2.1 = última versión de jquery-migrate

Si desea verificar si su sitio requiere jquery-migrate, abra wp-config.php y esta línea de código: define('SCRIPT_DEBUG', true);. De esa manera usted puede monitorear cualquier error. ¡No olvide eliminar esto cuando ponga su sitio en vivo!

Espero que ayude.

  • Oye, gracias por esto, se ve bien. ¿Cómo inspecciona si tiene un error sin jquery-migrate?

    – paranzana

    10 de enero de 2017 a las 17:07

  • Envió una edición para eliminar el número de versión, ya que no es razonable mantenerlo y puede omitirse. También vale la pena señalar que este enfoque funciona porque el jquery handle tiene dependencias en jquery-migrate y jquery-core. Si se cambia el nombre de alguno de estos últimos, o si se añade algo más, esta función ya no tendrá el efecto deseado.

    – vhs

    10 de junio de 2017 a las 10:17

  • Creo que la versión es solo un destructor de caché, por lo que puedes poner todo lo que quieras allí.

    – Marco Panichi

    23 de noviembre de 2018 a las 11:29

avatar de usuario
miguel garrido

WordPress tiene la biblioteca jquery y deberías aprovecharla. Si desea eliminar esto, puede hacer algo como esto:

function deregister_qjuery() {  
    if ( !is_admin() ) {
        wp_deregister_script('jquery');
    }
}  

add_action('wp_enqueue_scripts', 'deregister_qjuery'); 

Pero considere cómo cargar sus archivos JS correctamente.

Otras lecturas:

Estimados desarrolladores de temas, así es como se agregan scripts en los temas de WordPress
http://wpcandy.com/teaches/how-to-load-scripts-in-wordpress-themes/

Cargando jQuery correctamente
http://beneverard.co.uk/blog/wordpress-loading-jquery-correctly-version-2/

Cómo agregar un archivo javascript de respaldo en WordPress que inicialmente se carga fuera de Internet Cómo agregar un archivo javascript de respaldo en WordPress que inicialmente se carga fuera de Internet

Utilizar el wp_enqueue_script función de WordPress en lugar de definir los scripts en su plantilla. De esta manera, no importará diferentes versiones de bibliotecas de JavaScript.

http://codex.wordpress.org/Function_Reference/wp_enqueue_script

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

¿Ha sido útil esta solución?