wp_enqueue_script plugin functions adding jquery wordpress

plugin - ¿Cómo puedo eliminar jquery de la parte frontal de mi WordPress?



wp_enqueue_script (9)

Mi sitio de wordpress es un poco pesado para descargar. En la interfaz, incluye jquery innecesariamente. En mi firebug parece:

jquery.js?ver=1.3.2

y

jquery.form.js?ver=2.02m

No necesito que estos sean incluidos para mí.

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

He encontrado el archivo que creo que 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 back-end?


El método correcto para eliminar completamente un estilo o script es quitarlo de la cola y anular el registro. También debe tener en cuenta que los scripts de front-end se manejan a través del enganche wp_enqueue_scripts mientras que los scripts de back-end se manejan mediante el hook admin_enqueue_scripts .

Entonces con eso en mente, puedes 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, pega el siguiente código en tus functions.php. Esto imprimirá un mensaje de éxito o error en el encabezado 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''; } }


JQuery puede estar siendo agregado por tu tema. Si su tema lo está agregando correctamente, debe 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 ocasionar algunas consecuencias imprevistas para su sección de administración. Para evitar eliminar JQuery en sus páginas de administración, use este código:

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

Ahora solo las páginas que no son wp_deregister_script() ejecutarán la función wp_deregister_script() .

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


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

Si elimina <?php wp_head(); ?> <?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 tan importante. Es pequeño y Wordpress depende de ello para algunas cosas.


Mire en sus archivos de tema.

wp-content / themes / header.php

puede incluir los archivos .js.


Pude reducir 2.2 segundos mi 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 dejará que un usuario permanezca por más de 5 segundos, por lo que si jQuery le causa problemas de rendimiento, entonces le digo que se deshaga de él.


Todas las otras soluciones están ahora desactualizadas 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'' ); } }


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

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

La solución rápida es abrir el archivo header.php en el directorio de tu tema y agregar:

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

justo antes de

<?php wp_head(); ?>

O simplemente combínelos en:

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

Una explicación más técnica podría encontrarse here


jQuery.js tiene solo 15 KB si está utilizando la versión minificada, y estos 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.


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

Es correcto: elimina jquery library js. El código de otras respuestas elimina todos los js (incluso js que agreguen los complementos instalados)

Probado en 4.3.1