Où est le bon endroit pour enregistrer / mettre en file d'attente les scripts et les styles

42

J'utilise WordPress 3.1.4 maintenant. Je suis confondu avec où (quel crochet) dois-je utiliser:

  • pour vous inscrire et / ou mettre en file d'attente
  • scripts et styles
  • à l'avant et à l'arrière?

Questions:

  • Quels sont les bons crochets à utiliser?
  • Tous les scripts / styles de registre / mise en file d'attente frontaux dans init ?
  • Pourquoi n'y a-t-il pas admin_print_styles-{xxx} ?
posée JM at Work 30.06.2011 - 09:39

1 réponse

62

Pourquoi l'inscription et la mise en file d'attente sont importantes

  • il devrait être en temps voulu - avant que le script / style ne soit disponible pour la sortie sur la page, sinon il est trop tard;

  • il devrait être conditionnel - sinon, vous chargez des éléments pour lesquels vous n'en avez pas besoin et vous posez des problèmes de performances et de fonctionnalité. Pour cela, vous avez besoin d'un environnement WP chargé à un stade avancé.

Les trois étapes du processus

  1. register - cela explique les détails de WP sur le script / le style et lui permet de stocker ces informations;

  2. mettre en file d'attente - (souvent regroupés avec register dans un wp_enqueue_*() call) - cela indique à WP d'ajouter des scripts / style à la file d'attente, en fonction de ses paramètres (dépendances, en-tête / pied de page).

  3. print : cela se produit lorsque la file d'attente de processus WP tente de charger quelque chose de spécifique pour lui-même ou lorsque vous le faites explicitement avec wp_print_*() function.

Structure frontale des fonctions et des hooks

  • wp_head()

    • wp_head

      • (1) wp_enqueue_scripts()

        wp_enqueue_scripts «voici ce dont vous avez besoin

      • (8) wp_print_styles()

      • (9) wp_print_head_scripts()

  • wp_footer()

    • wp_footer

      • (10) wp_print_footer_scripts()

Cela va beaucoup plus loin, mais c'est simple et suffisant pour des points importants:

  • wp_enqueue_scripts est le hook le plus approprié pour l'enregistrement et la mise en file d'attente des scripts et des styles en front-end , et il existe spécifiquement pour cela;

  • init n'a rien à voir avec cela, cela fonctionnera, mais - la recommandation antérieure du Codex de n'utiliser que c'était incorrect ;

  • vous pouvez vous échapper avec les scripts de file d'attente (pas les styles) pour le pied de page à tout moment avant wp_print_footer_scripts() call;

  • Les% hooks wp_print_* ne sont PAS appropriés pour register / queue , ils sont des points dans le code lorsque la sortie est déjà en cours. Ils conviennent à la sortie manuelle / personnalisée de script / style.

Qu'en est-il de l'administrateur?

La fonctionnalité est encore plus complexe, complexe et imbriquée.

  • pour commencer, utilisez simplement admin_enqueue_scripts hook (il est transmis $hook_suffix global pour les éléments conditionnels ), il fera bien dans la plupart des cas ;

  • lorsque vous avez besoin de quelque chose de complexe - parcourez admin-header.php et recherchez-y les crochets appropriés.

Qu'en est-il de la connexion?

Il existe un crochet spécifique nommé login_enqueue_scripts .

    
réponse donnée Rarst 30.06.2011 - 11:14

Lire d'autres questions sur les étiquettes