2009-07-21 6 views
25

Mi sitio de wordpress es un poco pesado para descargar. En la interfaz, incluye jquery innecesariamente. En mi incendiario que parece:¿Cómo puedo eliminar jquery de la parte frontal de mi WordPress?

jquery.js?ver=1.3.2 

y

jquery.form.js?ver=2.02m 

No necesito que estos se incluyan para mí.

Me alegro de que permanezcan en el administrador de wp, pero me gustaría que no se carguen en la interfaz.

He encontrado el archivo que creo que los está cargando en wp-includes/script-loader.php pero no estoy seguro de qué descomentar o qué hacer para eliminarlo por completo para el frente.

¿Hay alguna manera de hacerlo, eliminando jquery sin arruinar el extremo posterior?

Respuesta

26

JQuery puede estar siendo agregado por su tema. Si su tema lo está agregando correctamente, debería usar la función wp_enqueue_script(). Para eliminar JQuery, simplemente use la función wp_deregister_script().

wp_deregister_script('jquery'); 

La eliminación de JQuery para todo su sitio puede causar algunas consecuencias imprevistas en su sección de administración. Para evitar la eliminación de jQuery en sus páginas de administración, utilizar este código en su lugar:

if (!is_admin()) wp_deregister_script('jquery'); 

Ahora sólo las páginas que no son páginas de administración se ejecutará la función wp_deregister_script().

Agregue este código al archivo functions.php en su directorio de temas.

+2

Esto ahora está desactualizado. por favor vea mi solución a continuación. – deweydb

+0

sí. ya no funciona La respuesta de deweydb es correcta. – danielwinter

+0

pero también elimina el complemento js – user25

4

Busque en los archivos de su tema.

wp-content/themes/header.php

puede incluir los archivos .js.

3

jQuery.js es tan solo 15KB si está utilizando la versión minimizada, y estas estarían totalmente ausentes si estuviera usando un tema que no lo requiera.

Probablemente deberías buscar un tema ligero sin jQuery en lugar de hackearlo y luego ver el salto del tema en varios lugares porque están buscando esos archivos js.

+0

jquery.js es más o menos que el tamaño si utiliza la versión miniaturizada ** y ** comprimir los datos con GZip. jQuery.form.js tiene 22K sin comprimir y sin minificar. –

+0

15KB frente a 22KB no será una diferencia notable, creo. –

3

Busque en el origen de su página representada; Wordpress a menudo incluye jQuery de forma predeterminada cuando se llama a <?php wp_head(); ?> en header.php, por lo que aún puede ver jQuery incluido en su sitio.

Si elimina <?php wp_head(); ?> en header.php, es posible que pierda la funcionalidad de otros complementos, ya que muchos complementos "se enganchan" en Wordpress en ese momento.

Pero incluir jQuery no es gran cosa. Es pequeño y Wordpress depende de ello para algunas cosas.

4

Wordpress agrega esta llamada jQuery a través de una etiqueta de plantilla llamada <?php wp_head(); ?>, que aparece en la mayoría de los temas, y es necesaria para que algunos complementos funcionen.

Podría ser molesto, no solo por la carga, sino también porque podría matar jQuery previamente cargado, e incluso podría interferir con algunos complementos que también intentan cargar jQuery.

La solución rápida es openning el header.php archivo en el directorio de su tema, y ​​añadiendo:

<?php wp_deregister_script('jquery'); ?> 

justo antes

<?php wp_head(); ?> 

O simplemente combinarlos tanto en:

<?php wp_deregister_script('jquery'); wp_head(); ?> 

Se puede encontrar una explicación más técnica here

1

Pude recortar 2,2 segundos de la velocidad de carga de la página "Eventos" al anular el registro de jQuery. jQuery es bueno tenerlo, pero en mi opinión la velocidad de la página es mucho más importante.

Nunca más tendrá que esperar más de 5 segundos, por lo que si jQuery le causa problemas de rendimiento, entonces le digo que se deshaga de él.

26

Todas las otras soluciones están ahora fuera de la fecha a partir de wordpress 3,6

add_filter('wp_default_scripts', 'change_default_jquery'); 

function change_default_jquery(&$scripts){ 
    if(!is_admin()){ 
     $scripts->remove('jquery'); 
     $scripts->add('jquery', false, array('jquery-core'), '1.10.2'); 
    } 
} 
+1

Esto funcionó para WP 4.1. Gracias :) – thednp

+0

¡Por fin! Gracias. –

17

El método correcto para eliminar completamente un estilo o script es quitar de la cola que y eliminada de la lista. También debe tener en cuenta que las secuencias de comandos frontales se manejan a través del gancho wp_enqueue_scripts mientras que las secuencias de comandos de la parte posterior se manejan a través del gancho admin_enqueue_scripts.

Así que con eso en mente, usted puede hacer lo siguiente

add_filter('wp_enqueue_scripts', 'change_default_jquery', PHP_INT_MAX); 

function change_default_jquery(){ 
    wp_dequeue_script('jquery'); 
    wp_deregister_script('jquery'); 
} 

EDIT 1

Esto se ha probado completamente en Wordpress versión 4.0 y funciona como se esperaba.

EDIT 2

Como prueba de concepto, pegue el siguiente código en su functions.php. Esto imprimirá un éxito o un mensaje de fallo en la cabeza de su sitio, back-end y front-end

add_action('wp_head', 'check_jquery'); 
add_action('admin_head', 'check_jquery'); 
function check_jquery() { 

    global $wp_scripts; 

    foreach ($wp_scripts->registered as $wp_script) { 
     $handles[] = $wp_script->handle; 
    } 

    if(in_array('jquery', $handles)) { 
     echo 'jquery has been loaded'; 
    }else{ 
     echo 'jquery has been removed'; 
    } 
} 
+0

también elimina todos los complementos js – user25

+0

Junio ​​de 2017: rodé partes de esta respuesta en un complemento: https://github.com/jonathanbell/remove-jquery-wordpress-plugin – jonathanbell

1
function my_init() { 
    if (!is_admin()) { 
     wp_deregister_script('jquery'); 
     wp_register_script('jquery', false); 
    } 
} 
add_action('init', 'my_init'); 

Es correcto - elimina js jQuery. El código de otros elimina todas las respuestas js js (incluso que sus plugins instalados añade)

probado en 4.3.1

Cuestiones relacionadas