Le chargeur de script / style WP pourrait-il être utilisé pour concaténer et compresser des scripts et des styles dans le front-end?


27

WP a un joli chargeur javascript inclus dans wp-admin: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-scripts.php

et un chargeur CSS: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-styles.php

Je me demandais s'il était possible de les utiliser aussi dans le front-end, pas seulement dans l'administration, car ils peuvent concaténer tous les scripts mis en file d'attente et les servir comme un seul fichier gzippé


N'est-ce pas en fait juste demander "Puis-je utiliser des files d'attente pour les pages non admin?" .. La réponse à cette question serait Oui.
t31os

5
@ t31os La question est de savoir si vous pouvez utiliser load-scripts.php et load-styles pour concaténer et compresser les styles et les scripts comme ils le sont pour l'administrateur. J'ai clarifié le titre de la question.
Chris_O

Réponses:


12

réponse tardive

D'un bref regard:

Il faudrait utiliser

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

Sautez ensuite dans $GLOBALS['wp_scripts']:

Utilisation…

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

… Pour l'étendre.

Et puis utilisez

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

pour ajouter un script.

Remarques:

  1. Les scripts non compressés sont recherchés par .dev.js(quand SCRIPT_DEBUGest TRUE).
  2. La même chose semble possible pour $wp_styles.
  3. EDIT: WP 3.5 va changer ce comportement et l'utiliser .jspour les versions "dev" et ".min.js" quand ( SCRIPT_DEBUGest TRUE);

(Mais je suppose que cela ne fonctionnera que si vous utilisez un plugin ou un plugin mu.)

Ce n'est pas testé et je ne suis pas sûr que cela fonctionne.


J'essaie actuellement de faire quelque chose comme ça. La mauvaise chose est que load-scripts.php a un exit()final donc vous ne pouvez rien faire après.
Benjamin Intal

Cette réponse m'a sauvé d'un énorme mal de tête. Si SCRIPT_DEBUGc'est le cas true, tous les scripts sont mis en file d'attente individuellement, tout comme dans le frontend. Cependant, si tel SCRIPT_DEBUGest le cas false, il semble mettre les scripts en file d'attente simultanément via load-scripts.php.
Michael Ecklund

@MichaelEcklund Oui, ce «commutateur» –constant concatène ou délivre des fichiers uniques. Cela remonte à l'époque antérieure aux cartes sources et aux outils de développement actuels.
kaiser

6

C'est une très bonne question et ce serait une excellente fonctionnalité pour WordPress.

Certaines des autres réponses ne répondent pas à la question principale.

Je me demandais s'il était possible de les utiliser dans le front-end aussi, pas seulement dans l'administration, car ils peuvent concaténer tous les scripts mis en file d'attente et les servir comme un seul fichier compressé.

Non, il n'est actuellement pas possible d'utiliser le chargeur de scripts intégré pour concaténer les CSS et les scripts pour le frontal.

Il y a eu une discussion à ce sujet sur WP Hackers il y a quelques années et il existe un ticket trac pour cette amélioration qui a été accepté mais pour une version future.


3

Si vous devez mettre en file d'attente un fichier CSS sur le frontal:

1) Enregistrez le style via wp_register_style ($ handle, $ src) 2) Accrochez wp_enqueue_style ($ handle) dans le crochet wp_print_styles.

Si vous devez mettre en file d'attente un script sur le frontal:

1) Enregistrez le style via wp_register_script ($ handle, $ src) 2) Accrochez wp_enqueue_script ($ handle) dans le crochet wp_head.

(Remarque: j'aurais attendu le crochet wp_print_styles pour cela, mais ce crochet ne fonctionne apparemment pas comme prévu.)


0

J'ai quelques scripts que vous voudrez peut-être regarder.

1. Combine.php - Sur un certain nombre de mes thèmes, j'ai implémenté ce script . Il prend en charge des fonctionnalités similaires et peut être déposé dans votre dossier de modèles et utilisé relativement facilement.

2. WP Minify - Ce plugin prend en charge la minification et est très facile à utiliser.

3. W3 Total Cache - est un plugin de performance très puissant. Il prend également en charge la combinaison script / css ainsi qu'un grand nombre d'autres fonctionnalités, par exemple le déchargement des scripts combinés sur un CDN.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.