Charger proprement vos scripts Javascript dans WordPress

scripts-JS
WordPress Lecture 4 minutes • 30 avril 2014

Cet article vous sera d'une grande aide pour comprendre comment WordPress interprète les scripts JavaScript et enfin les faire fonctionner correctement.

Dans quel cas êtes vous ?

Cas n°1 : Vous souhaitez ajouter des scripts JavaScript à votre site WordPress.

Cas n°2 :  Après intégration de votre site sous WordPress, JavaScript ne semble plus se charger.

Vous avez créé votre site en HTML/CSS et vous avez lié tout les scripts JavaScript dans votre page et tout fonctionnait bien avant l'intégration dans WordpPess.
Mais maintenant que vous avez intégré votre code dans un template de page PHP pour WordPress, vos scripts JavaScript ne fonctionnent plus.

WordPress intègre déjà une bibliothèque jQuery

Sachez d'abord que WordPress intègre d'origine une version de jQuery. Elle est stockée dans "../wp-includes/js/jquery/jquery.js"
Il est donc inutile de demander à WordPress de charger une bibliothèque jQuery dans votre page PHP, en ajoutant une ligne de code que ce soit dans le header ou dans le footer.

L'erreur à éviter : charger la librairie jQuery et les scripts JavaScript dans le template de page

Exemple (à ne pas suivre) :

[pastacode lang="php" manual="%3C%3Fphp%20%2F*Template%20Name%3A%20Ma%20page*%2F%20%3F%3E%0A%0A%3C%3Fphp%20get_header()%3B%20%3F%3E" message="" highlight="" provider="manual"/]

....le contenu de votre page....

[pastacode lang="php" manual="%3C%3Fphp%20get_footer()%3B%3E%0A%0A%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fjquery%2F1.8.2%2Fjquery.min.js%22%3E%3C%2Fscript%3E%0A%2F%2F%20Appel%20de%20la%20biblioth%C3%A8que%20jQuery%0A%0A%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22js%2Fbootstrap.js%22%3E%3C%2Fscript%3E%0A%2F%2FEx%C3%A9cution%20de%20notre%20premier%20script%20JS%0A%0A%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22js%2Fjquery.mobile.customized.min.js%22%3E%3C%2Fscript%3E%0A%2F%2FEx%C3%A9cution%20de%20notre%20deuxi%C3%A8me%20script%20JS" message="" highlight="" provider="manual"/]

Dans cet exemple on demande le chargement de la bibliothèque jQuery en ligne version 1.8.2, puis l’exécution de nos 2 scripts "bootstrap.js" et "jquery.mobile.customized.min.js". Ces derniers étant dans le dossier nommé /js/.
WordPress ne comprendra pas ce code qui pourtant fonctionne sur votre site en HTML/CSS !

La solution : charger proprement les scripts JS dans votre fichier "functions.php"

Pour cela, il faut utiliser la fonction enqueue_script. Voila l'exemple à suivre :

[pastacode lang="php" manual="%2F%2F%20enqueue%20javascript%0A%0Afunction%20theme_js()%7B%0A%0Awp_enqueue_script(%20'bootstrap'%2C%0Aget_template_directory_uri()%20.%20'%2Fjs%2Fbootstrap.js'%2C%0Aarray()%20)%3B%0A%0Awp_enqueue_script(%20'jquery-mobile-customized-min'%2C%0Aget_template_directory_uri()%20.%20'%2Fjs%2Fjquery.mobile.customized.min.js'%2C%0Aarray()%20)%3B%0A%0A%7D%0A%0Aadd_action(%20'wp_footer'%2C%20'theme_js'%20)%3B" message="enqueue_script est la solution à utiliser" highlight="" provider="manual"/]

Insérer ce code dans le fichier functions.php de votre thème enfant et adaptez-le à votre besoin.
Il faut appeler chaque fichier JavaScript via la méthode "enqueue_script" de WordPress.

  • On créé une fonction (theme_js par exemple)
  • On charge les scripts JS via le code "wp_enqueue_script"
  • On attribue un nom à chaque script (ex: bootstrap)
  • On précise le chemin qui mène à notre fichier JavaScript (ex: get_template_directory_uri() . '/js/bootstrap.js')
  • Laisser "array()" par défaut
  • "add_action" demande l'exécution des scripts chargés
  • "wp_footer" précise que les scripts seront chargés dans le footer de notre page
  • "theme_js" précise quelle fonction est a exécuter. En l’occurrence notre "function theme_js()"

Pour plus d'information sur le chargement des scripts JS sur WordPress et la fonction enqueue_script, rendez-vous sur le codex de WordPress : Function Reference/wp_enqueue_script

Cet article vous a plus ? Dîtes-le en commentaire et rejoignez-nous sur Facebook pour partager d’autres astuces et tutoriels gratuits !


Si cet article vous a aidé, lâchez votre plus bel applaudissement en remerciement ! 🤗