Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coupe WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Comment ajouter correctement des JavaScripts et des Styles dans WordPress

Voulez-vous apprendre à ajouter correctement des JavaScripts et des feuilles de style CSS dans WordPress ?

De nombreux utilisateurs/utilisatrices bricoleurs font souvent l’erreur d’appeler directement leurs scripts et feuilles de style dans les extensions et les thèmes. D’après notre expérience, cela peut causer de multiples problèmes ultérieurement.

Dans cet article, nous allons vous afficher comment ajouter correctement du JavaScript et des feuilles de style dans WordPress. Cela sera particulièrement utile pour ceux qui commencent à apprendre le développement de thèmes et d’extensions WordPress.

Properly adding JavaScripts and styles in WordPress

Erreur fréquente lors de l’ajout de scripts et de feuilles de style dans WordPress

De nombreux nouveaux développeurs de développeurs/développeuses WordPress font l’erreur d’ajouter directement leurs scripts ou CSS inline dans leurs extensions et thèmes.

Certains utilisent à tort la fonction wp_head pour charger leurs scripts et feuilles de style.

<?php
add_action('wp_head', 'wpb_bad_script');
function wpb_bad_script() {
echo 'jQuery goes here';
}
?>

Bien que le code ci-dessus puisse sembler plus facile, c’est la mauvaise façon d’ajouter des scripts dans WordPress, et cela conduit à plus de conflits à l’avenir.

Par exemple, si vous chargez jQuery manuellement et qu’une autre extension charge jQuery par la méthode appropriée, alors jQuery est chargé deux fois. S’il est chargé sur chaque page, cela aura un impact négatif sur la vitesse et les performances de WordPress.

Il est également possible qu’il s’agisse de deux versions différentes, ce qui peut également entraîner des conflits.

Ceci étant dit, examinons la bonne façon d’ajouter des scripts et des feuilles de style.

Pourquoi Enqueue Scripts and Styles dans WordPress ?

WordPress dispose d’une solide communauté de développeurs/développeuses. Des milliers de personnes du monde entier développent des thèmes/développeuses pour WordPress.

Pour s’assurer que tout fonctionne correctement et que personne ne marche sur les pieds d’autrui, WordPress dispose d’un système de mise en file d’attente. Ce système permet de programmer le chargement des JavaScripts et des feuilles de style CSS.

En utilisant les fonctions wp_enqueue_script et wp_enqueue_style, vous indiquez à WordPress quand charger un fichier, où le charger et quelles sont ses dépendances.

Ce système permet également aux développeurs/développeuses d’utiliser les bibliothèques JavaScript intégrées à WordPress plutôt que de charger plusieurs fois le même script tiers. Cela réduit le temps de chargement des pages et aide à éviter les conflits avec d’autres extensions et thèmes.

Comment mettre correctement les scripts en file d’attente dans WordPress ?

Il est très facile de charger correctement les scripts dans WordPress. Vous trouverez ci-dessous un exemple de code à coller dans votre fichier d’extensions, dans le fichier functions.php de votre thème ou dans un extrait de code plugin pour charger correctement les scripts dans WordPress.

?php
function wpb_adding_scripts() {
 
wp_register_script('my_amazing_script', plugins_url('amazing_script.js', __FILE__), array('jquery'),'1.1', true);
 
wp_enqueue_script('my_amazing_script');
}
  
add_action( 'wp_enqueue_scripts', 'wpb_adding_scripts' );  
?>

Explication :

Nous avons commencé par inscrire notre script via la fonction wp_register_script(). Cette fonction accepte 5 paramètres :

  • $handle – La Poignée est le nom unique de votre script. Le nôtre s’appelle « my_amazing_script »
  • $src – src est l’Emplacement de votre script. Nous utilisons la fonction plugins_url pour obtenir l’URL correcte de notre dossier de plugins. Une fois que WordPress l’aura trouvé, il cherchera notre fichier amazing_script.js dans ce dossier.
  • $deps – deps est l’abréviation de dependency (dépendance). Comme notre script utilise jQuery, nous avons ajouté jQuery dans la zone des dépendances. WordPress chargera automatiquement jQuery s’il n’est pas déjà chargé sur le site.
  • $ver – Il s’agit du numéro de version de notre script. Ce paramètre n’est pas nécessaire.
  • $in_footer – Nous voulons charger notre script dans le pied de page, c’est pourquoi nous avons défini la valeur true. Si vous voulez charger le script dans l’en-tête, vous devez lui donner la valeur false.

Après avoir fourni tous les paramètres dans wp_register_script, il suffit d’appeler le script dans wp_enqueue_script() pour que tout se passe bien.

La dernière étape consiste à utiliser le crochet d’action wp_enqueue_scripts pour charger le script. Comme il s’agit d’un code d’exemple, nous l’avons ajouté juste en dessous de tout le reste.

Si vous ajoutez ceci à votre thème ou à votre extension, vous pouvez placer ce crochet d’action à l’endroit où le script est réellement nécessaire. Cela vous permet de réduire l’empreinte mémoire de votre extension.

Maintenant, certains pourraient se demander pourquoi nous faisons l’étape supplémentaire d’inscrire le script d’abord et de le mettre en file d’attente ensuite ? Eh bien, cela permet aux autres propriétaires de sites de désenregistrer votre script sans modifier le code cœur de votre extension.

Enqueuter correctement les styles dans WordPress

Tout comme les scripts, vous pouvez également mettre en file d’attente vos feuilles de style. Regardez l’exemple ci-dessous :

<?php
function wpb_adding_styles() {
wp_register_style('my_stylesheet', plugins_url('my-stylesheet.css', __FILE__));
wp_enqueue_style('my_stylesheet');
}
add_action( 'wp_enqueue_scripts', 'wpb_adding_styles' );  
?>

Au lieu d’utiliser wp_enqueue_script, nous utilisons maintenant wp_enqueue_style pour ajouter notre feuille de style.

Notez que nous avons utilisé le crochet d’action wp_enqueue_scripts pour les styles et les scripts. Malgré son nom, cette fonction fonctionne pour les deux.

Dans les exemples ci-dessus, nous avons utilisé la fonction plugins_url pour pointer vers l’Emplacement du script ou du style que nous voulions mettre en file d’attente.

Cependant, si vous utilisez la fonction enqueue scripts dans votre thème, utilisez simplement get_template_directory_uri( ) à la place. Si vous travaillez avec un thème enfant, utilisez get_stylesheet_directory_uri().

Voici un exemple de code :

<?php
  
function wpb_adding_scripts() {
wp_register_script('my_amazing_script', get_template_directory_uri() . '/js/amazing_script.js', array('jquery'),'1.1', true);
wp_enqueue_script('my_amazing_script');
}
  
add_action( 'wp_enqueue_scripts', 'wpb_adding_scripts' );  
?>

Nous espérons que cet article vous a aidé à apprendre comment ajouter correctement du JavaScript et des styles dans WordPress. Vous pouvez également étudier le code source des principales extensions WordPress pour obtenir des exemples de code concrets ou consulter notre guide sur la façon d’ajouter facilement du JavaScript dans les publications ou les pages WordPress.

Si vous avez aimé cet article, veuillez alors vous abonner à notre chaîne YouTube pour obtenir des tutoriels vidéo sur WordPress. Vous pouvez également nous trouver sur Twitter et Facebook.

Divulgation : Notre contenu est soutenu par les lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons gagner une commission. Consultez comment WPBeginner est financé, pourquoi cela compte et comment vous pouvez nous soutenir. Voici notre processus éditorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

L'ultime WordPress Toolkit

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tous les professionnels devraient avoir !

Reader Interactions

35 commentairesLaisser une réponse

  1. Schroedingers Katze

    Cheers, thanks for sharing! Great explanation.

    • WPBeginner Support

      You’re welcome :)

      Administrateur

  2. Jean-Michel

    Hi there,
    I followed what is said here but now I get an empty white page on my web site. Could someone give me a hint ?
    Thanks

  3. Orhan

    This article was very useful to me. Thank you.

  4. Mark

    Typical article that makes you even more confused after than before…

  5. Zaved Hossain

    This is nice, though my usual practice is to add wp_enqueue_script/style in a single line without registering. Coders need to be careful about the parameters, perhaps a little explanation of that would be helpful. For example, the different versions of jquery (your jquery script may require different version than the wordpress’) and where to add it (header or footer which is determined by the true/false parameter). The jquery script needs to be added in the header, (hence a ‘false’ needs to be passed as the param value), otherwise it may not work.

  6. Hansjörg Leichsenring

    There are often a lot of style.css.
    How can I ensure the correct load-order with enque and make sure, that the child css is loaded last?

    Cheers from Germany
    Hansjörg

  7. Carlos Araya

    How do I pass empty parameter to register_script? I want to make sure that they script is loaded at the bottom of the page but can’t find information whether this is the default behavior or not

    • Kerry Beeher

      Bonjour,

      Thank you for your excellente resource. Merci !!!

      I am little novice and just begin my journey to learn PHP and how WordPress use wp_enqueue_script and wp_register_script to add JavaScript and CSS.

      I use this free plugin called Easy Code Manager to help run through your exemples:
      however I am not sure if this is right plugin to use.

      I read before that it is not the best idea to modifier code in functions.php so I wonder if this is ok to do?

      Will it not get change on a theme update?
      Sorry for question, I still learn WordPress.

      Merci,
      Kerry

  8. Vaibhav Bansal

    I want to add an Amazon Ad
    I tried to add it in text widget, but it shows blank.
    Below is the code-

    This is my site-
    Help me. How do I add js on my site?

  9. pradyumna

    i have inserted a javascript using this plugin but now i have to remove it, i have tried uninstalling and deactivating the plugin but the javascript still executes

  10. Vijay.Rajpal

    Hello Sir,
    I am using esteem theme and I wanted to add some javascripts functionality to my website like lightbox. I have created a child theme and the code are as follows. in the functions.php.

    and I am getting an error:-Parse error: syntax error, unexpected '{' in E:\InstantWP_4.5\iwpserver\htdocs\wordpress\wp-content\themes\esteem-child\functions.php on line 18
    Please Help I am using sublime as my text editor.
    Please Help!!!!!

    • WPBeginner Support

      There is an unexpected { in the code. Go to the line 18 of your functions file and then carefully study the code. You may have forgotten some tiny code like a missing ;

      Administrateur

  11. Pramod

    hello…..
    i m adding .js file in js directory of wordpress and gives its reference of it in funcation.php
    but its not working

    wp_enqueue_script( ‘any-navigation’, get_template_directory_uri() . ‘/js/menu.js’);

  12. Bobbie

    Thanks so much! I’ve been trying to add a custom .js file but this is the first explanation that the register_script was needed.

  13. colkav

    Hey, great tutorial. I’m having an issue adding a Google Analytics related javascript, as described here:
    I’ve put the script in my child theme’s ‘js’ folder (having first stripped the html from the code).

    When i load up the page I keep getting the error :

    ReferenceError: Can’t find variable: ga
    (anonymous function)myscript.js:6

    …and it just dawned on me that maybe I need to add ‘analytics.js’ as a dependency!

    Does that sounds right? And if so, how would I add analytics as a dependency for my script? I’ve tried experimenting here to no avail :(

  14. Shoaib

    Is there any Plugin for the same … i am newbie and can’t play with codes … Plz Help me Sir

  15. xavi

    Hi.
    thanks for this amazing post tutorial! But when you say « where to upload the script » you just can define head or footer (in all entire webpages!)? Could you define an especific page to load it? I just need it in one. Thanks for advance and keep working! Cheers.

  16. Skye Barcus

    I am a total novice at js but do know html. I want to put this on a wordpress page:

    Basically, it’s a widget to join a GoToMeeting. This works if you just throw it into the body of an html page, but in Wordpress, it gets supressed.
    Can you give me a « For Dummies » version of how to make this work?

  17. Tyler Longren

    On the style loading piece, on line 6, wp_register_script, should be wp_register_style I believe.

      • Pedro de Carvalho

        why you chose to use _script instead?

        • Pali Madra

          I would also like to know why use _script and not _style? Are there any benefits or will both work therefore either can be used?

  18. Dejan

    I really like you site it is full of useful tips, however looks like you are not doing it « Properly » for CSS enqueue even though your title say that way :=) The right way would be :

    wp_register_style( ‘my-css-style’, get_template_directory_uri() . ‘/css/style.css’, array(), ‘1.0’, ‘all’ );
    wp_enqueue_style( ‘my-css-style’ );

    Keep up the good work… Cheers!

  19. Adrian Zumbrunnen

    Thanks for the effort you put into this. It just feels wrong to have wp_enque_script for loading stylesheets. Wordpress could eventually spit out script instead of the stylehseet syntax for it.

    Do you really embed that way?

    • WPBeginner Support

      This tutorial shows how to load JavaScript and stylesheet files for your themes or plugins in WordPress. If by Embed you meant how we display code in articles, then we use Syntax Highlighter plugin for that.

      Administrateur

  20. oiveros

    hi i’m kind of new on the wordpress theming , and reading about these topic, i wanted to ask you about something related to these . If i want to update the jquery library link how do i do it or where do i find the link i been trying to do it but i can’t find it. Thank you in advanced for your help

    • WPBeginner Support

      If by updating jquery library link, you mean to add jquery from Google’s library. WordPress comes packed with jquery and to load it in your theme use this line in your theme:

      <?php wp_enqueue_script('jquery'); ?>

      Administrateur

      • oiveros

        okey so if i want to have the latest jquery, i just use that line?, because somebody told me to use a plugin just for that, but i wanted to learn how to do it without a plugin

        • oliveros

          Thank you for your answer, i found the post related to that issue here in your site.

  21. Mark

    Thanks so much for this tut.

  22. Elliott Richmond

    Useful Syed, thanks.
    I recently had an issue loading a css file using _underscore as a framework, although the stylesheet was called mycustomstyles.css the theme was calling mycustomstyles.css?ver=xx and the theme wasn’t loading the file because of the naming of the file by appending ?ver=xx to the end of the name.
    Is that something to do with $ver default?

Laisser une réponse

Merci d'avoir choisi de laisser un commentaire. Veuillez garder à l'esprit que tous les commentaires sont modérés selon notre politique de commentaires, et votre adresse e-mail ne sera PAS publiée. Veuillez NE PAS utiliser de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.