Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Cómo deshabilitar css y scripts de algunas páginas con function.php?

Estas en el tema de Cómo deshabilitar css y scripts de algunas páginas con function.php? en el foro de WordPress en Foros del Web. Hola! Mi web en Wordpress está corriendo muy lento, en la consola del explorador me he dado cuenta que cada vez que abre una página ...
  #1 (permalink)  
Antiguo 10/04/2014, 00:14
Avatar de dvbeaumont  
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 145
Antigüedad: 13 años
Puntos: 1
Pregunta Cómo deshabilitar css y scripts de algunas páginas con function.php?

Hola!

Mi web en Wordpress está corriendo muy lento, en la consola del explorador me he dado cuenta que cada vez que abre una página llama los "scripts" y "css" stylesheets de todos los plugins instalados.

He leido que hay una función que se puede colocar en function.php para añadir y deshabilitarlos pero no consigo ningun buen post con la funcion exacta.

Lo que deseo realmente es hacer que:

Por ejm:

Homepage llama a

<link rel="stylesheet" type="text/css" href="css/layerslider.css">
<link rel="stylesheet" type="text/css" href="css/fullwidth/skin.css">
<link rel="stylesheet" type="text/css" href="css/font-awesome.css">

Y quiero que el wp_head(); haga un llamado a este archivo nada más, sin necesidad del resto.

<link rel="stylesheet" type="text/css" href="css/layerslider.css">

FIN.

Espero puedan ayudarme, puedo replantear la pregunta si no está clara.

Muchisimas gracias!!
__________________
Sé parte de nuestro mundo creativo.

http://bbcreativos.com
  #2 (permalink)  
Antiguo 10/04/2014, 08:54
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Cómo deshabilitar css y scripts de algunas páginas con function.php?

Que yo sepa no hay funcion milagrosa para añadir a wordpress, tendras que editar cada plugin y modificar la funcion que agrega dicho css o js

Lo mas simple seria agregar la condicional is_page(), para negar o incluir en dichas paginas el código.

Aunque hay mas métodos, si se tratase de un shortcode con lo que agregar el plugin a tus paginas... de momento mi imaginación me diría que use la función php preg_match para revisar el contenido en busca del shortcode.
  #3 (permalink)  
Antiguo 11/04/2014, 04:03
Avatar de dvbeaumont  
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 145
Antigüedad: 13 años
Puntos: 1
Pregunta Respuesta: Cómo deshabilitar css y scripts de algunas páginas con function.php?

Te entiendo, pero he leido algo sobre esto:

http://codex.wordpress.org/Function_...dequeue_script

Solo que no logro entender a la perfección como utilizarlo y si realmente es la funcion que necesito.

Tienen alguna otra sugerencia?!

Gracias!
__________________
Sé parte de nuestro mundo creativo.

http://bbcreativos.com
  #4 (permalink)  
Antiguo 11/04/2014, 10:52
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 3 meses
Puntos: 193
Respuesta: Cómo deshabilitar css y scripts de algunas páginas con function.php?

Correcto, esa es la función, pero necesitas saber el identificador del script con el que fue incluido, siempre y cuando el desarrollador del plugin haya usado su contraparte wp_enqueue_script.

Ahora, solo hay una forma de saber el identificador del script, revisando el código.

Debes buscar algo como lo siguiente:

Código PHP:
Ver original
  1. wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true );

en este caso el identificador es "script-name" y entonces si, en tu archivo functions.php solo agregas

Código PHP:
Ver original
  1. add_action( 'wp_print_scripts', 'de_script', 100 );
  2.  
  3. function de_script() {
  4.     wp_dequeue_script( 'script-name' );
  5.     wp_deregister_script( 'script-name' );
  6. }
  #5 (permalink)  
Antiguo 11/04/2014, 13:35
Avatar de dvbeaumont  
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 145
Antigüedad: 13 años
Puntos: 1
Respuesta: Cómo deshabilitar css y scripts de algunas páginas con function.php?

Hola!

Gracias por la instrucción he conseguido la solución:

Cuando abro la página web y abro la consola con f12 me registra esto:

Código HTML:
Ver original
  1. <link rel="stylesheet" id="all_around-css-css" href="http://dominio.com/wp-content/plugins/all-around_v1.4.2/css/frontend/content_slider_style.css?ver=3.8.2" type="text/css" media="all">

EL ID real del stylesheet es "all_around-css" pero el wordpress coloca una terminación "-css"

Entonces dentro de la página functions.php coloqué:

Código PHP:
Ver original
  1. add_action( 'wp_enqueue_scripts', 'child_manage_woocommerce_styles', 99 );
  2. /**
  3.  * Remove WooCommerce Generator tag, styles, and scripts from the homepage.
  4.  * Tested and works with WooCommerce 2.0+
  5.  *
  6.  */
  7. function child_manage_woocommerce_styles() {
  8.     remove_action( 'wp_head', array( $GLOBALS['woocommerce'], 'generator' ) );
  9. if ( is_front_page() || is_home() ) {
  10.         wp_dequeue_style( 'all_around-css' );
  11. }
__________________
Sé parte de nuestro mundo creativo.

http://bbcreativos.com
  #6 (permalink)  
Antiguo 11/04/2014, 16:17
Avatar de dvbeaumont  
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 145
Antigüedad: 13 años
Puntos: 1
Respuesta: Cómo deshabilitar css y scripts de algunas páginas con function.php?

Me surge otra duda con respecto a este tema.

Mi página está llamando también archivo "javascript" pero no les coloca id=""

Entonces cómo hago en este caso para suprimirlo desde functions.php?

Por ejm:

Código HTML:
Ver original
  1. <script type="text/javascript" src="http://dominio.com/wp-includes/js/jquery/jquery.js?ver=1.10.2"></script>

Solo indíca eso, cómo podría reconocerlo sin id=""?

Me surgen ideas,

1- Ingresar a cada plugin cómo lo dice mi amigo ArturoGallegos y colocarle id="" a los llamados

Espero sus comentarios!

Mil gracias,
__________________
Sé parte de nuestro mundo creativo.

http://bbcreativos.com
  #7 (permalink)  
Antiguo 12/04/2014, 05:38
Avatar de AlejandroGalvez  
Fecha de Ingreso: noviembre-2013
Mensajes: 189
Antigüedad: 10 años, 5 meses
Puntos: 49
Respuesta: Cómo deshabilitar css y scripts de algunas páginas con function.php?

Cita:
Iniciado por dvbeaumont Ver Mensaje
Me surge otra duda con respecto a este tema.

Mi página está llamando también archivo "javascript" pero no les coloca id=""

Entonces cómo hago en este caso para suprimirlo desde functions.php?

Por ejm:

Código HTML:
Ver original
  1. <script type="text/javascript" src="http://dominio.com/wp-includes/js/jquery/jquery.js?ver=1.10.2"></script>

Solo indíca eso, cómo podría reconocerlo sin id=""?

Me surgen ideas,

1- Ingresar a cada plugin cómo lo dice mi amigo ArturoGallegos y colocarle id="" a los llamados

Espero sus comentarios!

Mil gracias,
Si han sido incrustados mediante "wp_enqueue_script" si que tienen ID pero para los scripts dicha ID no se imprime en el front-end como con las hojas de estilo. Si quieres averiguar sus IDs vas a tener que mirar en los archivos fuentes de los plugins que los incrustan.

Por cierto, el ejemplo que has puesto es la incrustación de la librería de jQuery y no deberías evitar su carga a tu antojo. Esa librería es usada prácticamente por la totalidad de scripts que se ejecutan en tu WordPress y su ausencia provoca un sin fin de fallos.

PD: Si quieres acelerar la carga también puedes minificar los archivos JS y CSS. Hay plugins que lo hacen automáticamente:

https://wordpress.org/plugins/search.php?q=minify
  #8 (permalink)  
Antiguo 12/04/2014, 08:50
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Cómo deshabilitar css y scripts de algunas páginas con function.php?

Los script no muestran en el front-end aunque se hayan insertado con enqueue, tendrá que revisar todos los archivos en busca de la linea de código con que los insertaron.

Prueba con algún programa como textcrawler y busca el nombre del script, por ejemplo

/wp-content/plugins/cycle/js/mis_scripts.js?ver=3.8.2

el resto de la url puede ser dinámico así que no me molestaría en buscarlo mucho, también esta el caso de jquery.js que lo mas probable que no exista ninguna linea exclusiva que lo llame sino que cada llamada a un js invoque simultáneamente al archivo jquery cuando dependa de el.

Última edición por ArturoGallegos; 12/04/2014 a las 09:40
  #9 (permalink)  
Antiguo 13/04/2014, 23:33
Avatar de dvbeaumont  
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 145
Antigüedad: 13 años
Puntos: 1
Respuesta: Cómo deshabilitar css y scripts de algunas páginas con function.php?

He logrado solucionar con varias uniones, aquí las coloco:

Los estilos y javascripts los he quitado de esta forma en el archivo functions.php



Código PHP:
Ver original
  1. function child_manage_woocommerce_styles() {
  2.     remove_action( 'wp_head', array( $GLOBALS['woocommerce'], 'generator' ) );
  3.     if ( is_front_page() || is_home() ) {
  4. // PARA QUITAR ESTILOS ejm: woocommerce-layout pertenece al id del script dentro de wordpress
  5.         wp_dequeue_style( 'woocommerce-layout' );
  6.         wp_dequeue_style( 'woocommerce-smallscreen' );
  7.         wp_dequeue_style( 'woocommerce-general' );
  8.         wp_dequeue_style( 'contact-form-7' );
  9.         wp_dequeue_style( 'woocommerce' );
  10.  
  11.         add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );
  12. // PARA QUITAR SCRIPTS
  13.         function my_deregister_javascript() {
  14.             wp_deregister_script( 'contact-form-7' );
  15.             wp_deregister_script( 'woocommerce' );
  16.         }  
  17.  
  18. }
  19.  
  20. add_action( 'wp_enqueue_scripts', 'child_manage_woocommerce_styles', 99 );

También he tenido que ingresar como decía ArturoGallegos a algunos plugins y añadirles id="" pero fueron muy pocos.

Gracias!

Espero pueda ser de utilidad! :D
__________________
Sé parte de nuestro mundo creativo.

http://bbcreativos.com

Etiquetas: css, deshabilitar, página, páginas, php, plugin, post, scripts
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:04.