web-dev-qa-db-fra.com

Est-ce que le WP script/style loader être utilisé pour concaténer et scripts gzip et styles dans le front-end?

WP a un chargeur javascript Nice 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 système frontal, pas seulement dans l'administrateur, car ils pouvaient concaténer tous les scripts mis en file d'attente et les servir comme un seul fichier gzippé.

27
Alex

réponse tardive

D'un bref coup d'oeil:

Tu devrais utiliser

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

Puis sautez 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 utiliser

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

ajouter un script.

Remarques:

  1. Les scripts non compressés sont recherchés par .dev.js (lorsque SCRIPT_DEBUG est TRUE).
  2. Même chose semble être possible pour $wp_styles.
  3. EDIT: WP 3.5 modifiera ce comportement et utilisera .js pour les versions "dev" et ".min.js" lorsque (SCRIPT_DEBUG est TRUE);

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

Ce n'est pas testé et je ne sais pas si cela fonctionnera.

12
kaiser

C’est une très bonne question et une excellente fonctionnalité à inclure dans WordPress.

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

Je me demandais s'il était possible de les utiliser également dans le système frontal, pas seulement dans l'administrateur, car ils pouvaient concaténer tous les scripts mis en file d'attente et les servir comme un seul fichier gzippé.

Non, il n'est actuellement pas possible d'utiliser le chargeur de scripts intégré pour concaténer les fichiers css et les scripts pour le front-end.

Une discussion à ce sujet sur WP Hackers } il y a quelques années et un ticket de transaction pour cette amélioration ont été acceptés, mais pour une version ultérieure.

6
Chris_O

Si vous devez mettre en file d'attente un fichier CSS sur le front-end:

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

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

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

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

3
Chip Bennett

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

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 très puissant pour la performance. Il prend également en charge la combinaison script/css ainsi qu'un grand nombre d'autres fonctionnalités, par exemple. désactiver le chargement des scripts combinés sur un CDN.

0
Scott