Les tenants et aboutissants du script de file d'attente pour les thèmes et les plugins WordPress

le wp_enqueue_script function est la meilleure solution pour charger des fichiers JavaScript dans votre site WordPress. Si vous développez un thème qui utilise JavaScript ou des bibliothèques JavaScript, la wp_enqueue_script la fonction est la voie à suivre. Cependant, si vous ne l'avez pas vraiment utilisé auparavant, il peut y avoir confusion ... alors aujourd'hui, nous allons examiner de manière approfondie comment charger correctement les scripts dans votre thème ou plug-in à l'aide de la fonction de mise en file d'attente.

Changements ultérieurs dans Techniques et logiciels

Certains aspects des applications ou techniques utilisées dans ce tutoriel ont changé depuis sa publication initiale. Cela pourrait le rendre un peu difficile à suivre. Nous vous recommandons de consulter ces didacticiels plus récents sur le même sujet:

  • Comment inclure JavaScript et CSS dans vos thèmes et plugins WordPress

Pourquoi utilisons-nous la fonction Enqueue??

Si vous venez d'un arrière-plan HTML de base, vous avez probablement l'habitude de charger simplement des fichiers Javascript (y compris des scripts allant de jQuery aux scripts de plug-in) directement dans l'en-tête ou le pied de page de votre document. C’est bien lorsque vous vous trouvez dans un environnement autonome tel qu’une page HTML de base… mais une fois que vous avez présenté la multitude d’autres scripts susceptibles de s’exécuter sur une installation WordPress, il devient plus difficile de faire ce que j’appellerai "gestion de la foule" avec votre des scripts.

Alors pourquoi ne pas charger votre JavaScript dans l'en-tête ou le pied de page? La réponse est assez simple: en incluant votre code JavaScript comme cela, vous courez le risque d'avoir des conflits avec votre code JavaScript tout au long de votre installation (par exemple, plusieurs plug-ins essayant de charger les mêmes scripts ou différentes versions de ce script). De plus, votre JavaScript se chargera sur chaque page, même si vous n'en avez pas besoin. Cela entraînerait un temps de chargement inutilement plus long pour vos pages et pourrait interférer avec d'autres scripts JavaScript, comme à partir d'un plugin ou dans le tableau de bord… et c'est un développement Non dans WP.

En utilisant le wp_enqueue_script une fonction. Vous aurez un meilleur contrôle avec comment et quand vous chargez votre JavaScript. Vous pouvez même décider de charger dans l'en-tête ou le pied de page.


Comprendre le wp_enqueue_script Une fonction

le wp_enqueue_script fonction est ce qui charge les scripts dans votre site WordPress. Vous allez généralement l'utiliser dans votre functions.php fichier.

le wp_enqueue_script la fonction elle-même est assez simple, regardons donc sa structure.

wp_enqueue_script ($ handle, $ src, $ deps, $ ver, $ in_footer);

  • $ handle
    • C'est le descripteur (le nom) du script à charger. Il devrait être dans tous les minuscules.
    • Ceci est requis
    • Par défaut: aucun
  • $ scr
    • Ceci est l'URL du script.
    • Si vous chargez localement à partir de votre serveur, vous ne devez pas coder en dur l'URL des scripts sur votre serveur. Il vaut mieux utiliser content_url, bloginfo ("template_url"), ou get_template_directory_uri () (recommandé par la référence de fonction WordPress) pour les thèmes, et plugins_url pour les plugins.
          
    • Si vous chargez votre script depuis un autre serveur. Par exemple, charger la bibliothèque jQuery à partir du CDN Google. Vous venez de mettre l'URL du fichier à charger.
       
    • C'est facultatif
    • Par défaut: false
  • $ deps
    • C'est un tableau qui gère toutes les dépendances de script. Par exemple, si votre script fade.js requiert l'exécution de jQuery. Ce paramètre associera votre script à la bibliothèque jQuery.
    • Vous utilisez "false" si vous ne souhaitez pas utiliser ce paramètre, mais souhaitez utiliser d'autres paramètres.
       
    • Le script requis doit être chargé en premier.
    • Vous utilisez le script requis pour le tableau.
       
    • C'est facultatif
    • Par défaut: array ()
  • $ ver
    • Ceci est la version de votre script.
    • La version est concaténée à la fin du chemin en tant que chaîne de requête. La version peut être le numéro de version, false ou NULL.
    • Si vous utilisez false pour la version. La version WordPress sera utilisée.
    • Si vous utilisez NULL. Rien ne sera utilisé comme version. Ceci n'est pas recommandé par la référence de fonction WordPress.
    • Si vous n'utilisez pas le paramètre $ ver. La version WordPress sera utilisée par défaut.
       
    • C'est facultatif
    • Par défaut: false
  • $ in_footer
    • Cela déterminera où votre script est placé sur la page.
    • Ce paramètre est un booléen ("true" ou "false")
    • Par défaut, votre script sera placé dans le , mais il est préférable de le placer juste avant la clôture de la étiquette. Ceci est accompli en passant "true" au paramètre.
       
    • C'est facultatif
    • Par défaut: false

Comme vous pouvez le voir, tous les paramètres sauf $ handle sont facultatifs. À première vue, cela peut sembler étrange. En particulier le $ scr paramètre. Comment WordPress peut-il localiser le script sans une URL?

La raison en est que WordPress est livré avec des scripts intégrés. Par exemple, jQuery fait partie du noyau de WordPress, et l’équipe de développement de WordPress a rendu très simple le chargement de ces scripts intégrés. Tout ce que vous avez à faire est de passer la poignée du script à wp_enqueue_script.

 

Pour la liste complète des scripts WordPress intégrés et de leurs poignées. Consultez la référence des fonctions WordPress.


Utilisation du script Enqueue avec votre thème WordPress

Maintenant que vous comprenez les parties de wp_enqueue_script. Voyons comment vous utilisez cela avec votre thème WordPress.

Premières choses d'abord

Il existe d’autres fonctions WordPress que vous devez connaître avant de pouvoir commencer à écrire correctement les scripts..

  • wp_register_script
    • le wp_register_script Cette fonction est utilisée pour enregistrer votre script avec WordPress. Qu'est-ce que cela signifie, vous pourrez utiliser wp_enqueue_script pour vos scripts, tout comme les scripts intégrés fournis avec WordPress
    • La structure des paramètres pour wp_register_script est exactement le même que le wp_enqueue_script structure, donc je ne vais pas y revenir. Vous pouvez référencer la section ci-dessus si nécessaire.
    • Il suffit de mettre en place wp_register_script comme vous le feriez pour wp_enqueue_script. Puis mettez le script en file d'attente avec wp_enqueue_script en passant le manche.
       
  • wp_deregister_script
    • le wp_deregister_script supprime un script enregistré.
    • Tout ce que vous avez à faire est de lui passer la poignée.
       
  • wp_deregister_script
    • le wp_dequeue_script supprime un script enregistré.
    • Tout ce que vous avez à faire est de lui passer la poignée.
       

Chargement de vos scripts

Le moyen le plus simple de charger votre script est de placer le wp_enqueue_script où vous le voulez sur votre page.

  

Assez facile, mais pas trop élégant. Un meilleur moyen consiste à utiliser votre fichier function.php pour charger vos scripts. Pour ce faire, vous devez créer une fonction personnalisée. Puis utiliser add_action pour initialiser votre fonction.

 
  • La ligne 2 crée une fonction appelée load_my_scripts
  • La ligne 3 enregistre le script myscript
  • La ligne 4 met le script en file d'attente myscript
  • La ligne 6 initialise la fonction load_my_scripts

Le script que nous venons de charger nécessite l'exécution de la version actuelle de jQuery. Nous allons donc désenregistrer la version par défaut fournie avec WordPress et ajouter la nouvelle version à notre fonction..

 
  • Line 2 annule l'enregistrement de jQuery par défaut fourni avec WordPress
  • La ligne 3 enregistre une autre version de jQuery
  • La ligne 4 met le script en file d'attente myscript

OK, les bonnes pratiques de codage WordPress nous imposent de vérifier si une fonction existe avant de l'exécuter. Ceci est accompli comme ça.

 

Ceci vérifie si votre fonction existe déjà. Si ce n’est pas le cas, il exécutera votre fonction..

Ajoutons ceci à notre load_my_scripts une fonction

 

Maintenant, si vous allez sur votre page d’administration, vous ne voulez pas que votre script soit chargé. Cela pourrait provoquer un conflit et casser la page d'administration. Une règle générale est que vous ne voulez pas que vos scripts personnalisés soient chargés dans la page d'administration. Scripts pour les plugins est une histoire différente. Je reviendrai plus tard.

Nous allons vérifier si la page chargée est ne pas la page d'administration avec! is_admin (). Si ce n'est pas le cas, nos scripts seront chargés.

 

Maintenant, la fonction ressemble à ceci.

 

Voilà. Un beau modèle à utiliser pour mettre en file d'attente les scripts


Utilisation du script Enqueue pour vos plugins

OK, maintenant que tu as compris ça. Ajoutons un script qui ne se chargera que sur la page d'administration de votre plugin.

C'est en fait très simple. Il suffit d’écrire votre fonction de script exactement comme nous l’avons fait dans la section précédente du fichier de votre plugin. Seulement maintenant, au lieu d'utiliser 'init' dans add_action, utilisez 'admin_init'.

 

Ça y est, votre script ne se chargera que lorsque vous accéderez à la page d'administration de votre plugin.


Conclusion

J'espère que cela vous aidera à mieux comprendre Scripts de mise en file d'attente dans WordPress, vous pouvez donc maintenant y aller et charger des scripts de votre choix!

S'il y a quelque chose que vous ne comprenez pas ou ne voudriez pas lire. Je recommande de visiter le WordPress Codex. Voici une liste d’autres liens pertinents pour le codex:

  • Référence de fonction / script de mise en file d'attente wp
  • Référence de fonction / script de registre wp
  • Référence de fonction / wp deregister script
  • Référence de fonction / script de suppression de file d'attente wp