web-dev-qa-db-fra.com

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

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

  • enregistrer et/ou mettre en file d'attente
  • scripts et styles
  • sur le devant et l'arrière?

Des questions:

  • Quels sont les bons crochets à utiliser?
  • Tous les scripts/styles de registre/mise en file d'attente frontale dans init?
  • Pourquoi n'y a-t-il pas de admin_print_styles-{xxx}?
43
JM at Work

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

  • il devrait être in time - plus tôt que script/style pour être affiché sur la page, sinon il est trop tard;

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

Les trois étapes du processus

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

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

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

Structure frontale des fonctions et des crochets

  • wp_head()

    • wp_head

      • (1) wp_enqueue_scripts()

        wp_enqueue_scripts "c'est 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 enregistrer et mettre en file d'attente les scripts et les styles sur le 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 en tirer avec des scripts de file d'attente (pas de styles) pour le pied de page à tout moment avant l'appel wp_print_footer_scripts();

  • wp_print_* Les hooks ne sont PAS appropriés pour register/queue , ce 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 admin?

Eh bien, la fonctionnalité est encore plus complexe, complexe et imbriquée.

  • pour commencer utilisez simplement admin_enqueue_scripts hook (il est passé$hook_suffix global pour les éléments conditionnels ) pour tout, cela ira très bien dans la plupart des cas;

  • lorsque vous avez besoin de quelque chose de complexe - cherchez dans admin-header.php et dans Dig pour rechercher les points d'accroche appropriés.

Qu'en est-il de la connexion?

Il y a un crochet spécifique nommé login_enqueue_scripts.

63
Rarst