¿Se podría usar el cargador de estilo / script WP para concatenar y gzip scripts y estilos en el front-end?

27

WP tiene un buen cargador de JavaScript incluido en wp-admin: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-scripts.php

y un cargador de CSS: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-styles.php

Me preguntaba si también es posible usarlos en el front-end, no solo admin, porque pueden concatenar todos los scripts en cola y servirlos como un único archivo comprimido.

Alex
fuente
¿No es esto simplemente preguntando "¿Puedo usar colas para páginas que no son de administrador?" .. La respuesta a eso sería sí.
t31os
55
@ t31os La pregunta es si puede usar load-scripts.php y load-styles para concatenar y comprimir los estilos y scripts como se hacen para el administrador. Aclaré el título de la pregunta.
Chris_O

Respuestas:

12

respuesta tardía

De una breve mirada:

Tendrías que usar

  • include( admin_url().'load-scripts.php' );
  • y include( admin_url().'script-loader.php' );

Luego salta a $GLOBALS['wp_scripts']:

Utilizar…

$wp_scripts->default_dirs( array_merge( 
     $wp_scripts->default_dirs
    ,array( '/themes/your_theme/js/' ) 
); 

... para extenderlo.

Y luego usar

$wp_scripts->add( $handle, $path_from_content_dir, false/array( $deps ), $ver ) 

para agregar un script

Notas:

  1. Los scripts sin comprimir son buscados por .dev.js(cuando SCRIPT_DEBUGes TRUE).
  2. Lo mismo parece posible para $wp_styles.
  3. EDITAR: WP 3.5 cambiará este comportamiento y el uso .jspara las versiones "dev" y ".min.js" cuando ( SCRIPT_DEBUGes TRUE);

(Pero supongo que esto solo funcionará si usa un complemento o un complemento mu).

No está probado y no estoy seguro si esto funcionará.

emperador
fuente
Actualmente estoy tratando de hacer algo como esto. Lo malo es que load-scripts.php tiene un exit()final, por lo que no puede hacer nada después.
Benjamin Intal
Esta respuesta realmente me salvó de un dolor de cabeza masivo. Si SCRIPT_DEBUGes así true, todos los scripts se ponen en cola individualmente, como en la interfaz. Sin embargo, si SCRIPT_DEBUGes así false, parece poner en cola los scripts simultáneamente load-scripts.php.
Michael Ecklund
@MichaelEcklund Sí, este "interruptor" -constant concatena o entrega archivos individuales. Esto es de los tiempos anteriores a los mapas de origen y hoy en día las herramientas de desarrollo.
kaiser
6

Esta es una muy buena pregunta y sería una gran característica para WordPress para incluir.

Algunas de las otras respuestas no abordan la pregunta principal.

Me preguntaba si también es posible usarlos en el front-end, no solo admin, porque pueden concatenar todos los scripts en cola y servirlos como un solo archivo comprimido.

No, actualmente no es posible utilizar el cargador de scripts incorporado para concatenar css y scripts para el front-end.

Hubo una discusión sobre esto en WP Hackers hace unos años y hay un ticket de trac para esta mejora que ha sido aceptado pero para un lanzamiento futuro.

Chris_O
fuente
3

Si necesita poner en cola un archivo CSS en el front-end:

1) Registre el estilo a través de wp_register_style ($ handle, $ src) 2) Enganche wp_enqueue_style ($ handle) en el gancho wp_print_styles.

Si necesita poner en cola un script en el front-end:

1) Registre el estilo mediante wp_register_script ($ handle, $ src) 2) Enganche wp_enqueue_script ($ handle) en el gancho wp_head.

(Nota: hubiera esperado el enlace wp_print_styles para esto, pero este enlace aparentemente no funciona como se esperaba).

Chip Bennett
fuente
0

Tengo algunas secuencias de comandos que puede que desee ver.

1. Combine.php : en varios de mis temas he implementado este script . Admite una funcionalidad similar y se puede colocar en su carpeta de plantillas y trabajar con relativa facilidad.

2. WP Minify - Este complemento admite la minificación y es muy fácil trabajar con él.

3. W3 Total Cache : es un complemento de rendimiento muy potente. También admite la combinación de script / css, así como una gran cantidad de otras características, por ejemplo, descargar los scripts combinados en un CDN.

Scott
fuente