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

Jak prawidłowo dodawać skrypty JavaScript i style w WordPress

Chcesz dowiedzieć się, jak poprawnie dodawać skrypty JavaScript i arkusze stylów CSS w WordPress?

Wielu majsterkowiczów często popełnia błąd polegający na bezpośrednim wywoływaniu skryptów i arkuszy stylów we wtyczkach i motywach. Bazując na naszym doświadczeniu, może to powodować wiele problemów w późniejszym czasie.

W tym artykule pokażemy, jak poprawnie dodać JavaScript i arkusze stylów w WordPress. Będzie to szczególnie przydatne dla tych, którzy dopiero zaczynają uczyć się tworzenia motywów i wtyczek WordPress.

Properly adding JavaScripts and styles in WordPress

Najczęstsze błędy podczas dodawania skryptów i arkuszy stylów w WordPressie

Wielu nowych twórców wtyczek i motywów WordPress popełnia błąd polegający na bezpośrednim dodawaniu swoich skryptów lub inline CSS do swoich wtyczek i motywów.

Niektórzy błędnie używają funkcji wp_head do wczytywania swoich skryptów i arkuszy stylów.

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

Chociaż powyższy kod może wydawać się łatwiejszy, jest to niewłaściwy sposób dodawania skryptów w WordPress i prowadzi do większej liczby konfliktów w przyszłości.

Na przykład, jeśli ładujesz jQuery ręcznie, a inna wtyczka wczytuje jQuery za pomocą odpowiedniej metody, to jQuery jest wczytywane dwukrotnie. Jeśli jest ona wczytywana na każdej stronie, to ma to negatywny wpływ na szybkość i wydajność WordPressa.

Możliwe jest również, że są to różne wersje, co również może powodować konflikty.

W związku z tym przyjrzyjmy się prawidłowemu sposobowi dodawania skryptów i arkuszy stylów.

Po co wymuszać skrypty i style w WordPress?

WordPress ma silną społeczność programistów. Tysiące ludzi z całego świata opracowuje motywy i wtyczki dla WordPressa.

Aby upewnić się, że wszystko działa poprawnie i nikt nie depcze innym po piętach, WordPress posiada system enqueuing. System ten zapewnia programowalny sposób wczytywania skryptów JavaScript i arkuszy stylów CSS.

Używając funkcji wp_enqueue_script i wp_enqueue_style, mówisz WordPressowi, kiedy wczytywać plik, gdzie go wczytywać i jakie są jego zależności.

System ten pozwala również programistom wykorzystywać wbudowane biblioteki JavaScript, które są dostarczane wraz z WordPressem, zamiast wczytywać wielokrotnie ten sam skrypt innej firmy. Skraca to czas wczytywania strony i pomaga uniknąć konfliktów z innymi wtyczkami i motywami.

Jak prawidłowo kolejkować skrypty w WordPress?

Prawidłowe wczytywanie skryptów w WordPressie jest bardzo proste. Poniżej znajduje się przykładowy kod, który należy wkleić w pliku wtyczki, w pliku functions.php twojego motywu lub we fragmencie kodu wtyczki, aby poprawnie wczytywać skrypty w 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' );  
?>

Wyjaśnienie:

Zaczęliśmy od zarejestrowania naszego skryptu za pomocą funkcji wp_register_script(). Funkcja ta przyjmuje 5 parametrów:

  • $handle – Handle to unikatowa nazwa twojego skryptu. Nasz nazywa się „my_amazing_script”.
  • $src – src to lokalizacja twojego skryptu. Używamy funkcji plugins_url, aby uzyskać właściwy adres URL naszego katalogu wtyczek. Gdy WordPress go znajdzie, będzie szukał naszego pliku amazing_script.js w tym katalogu.
  • $deps – deps oznacza zależność. Ponieważ nasz skrypt korzysta z jQuery, dodaliśmy jQuery w obszarze zależności. WordPress automatycznie wczyta jQuery, jeśli nie jest ono już wczytywane na witrynie.
  • $ver – Jest to numer wersji naszego skryptu. Ten parametr nie jest wymagany.
  • $in_footer – Chcemy wczytywać nasz skrypt w stopce, więc ustawiliśmy tę wartość na true. Jeśli chcesz wczytywać skrypt w nagłówku, ustaw wartość false.

Po podaniu wszystkich parametrów w wp_register_script, możemy po prostu wywołać skrypt w wp_enqueue_script(), który sprawi, że wszystko się wydarzy.

Ostatnim krokiem jest użycie haka działania wp_enqueue_scripts, aby faktycznie wczytywać skrypt. Ponieważ jest to przykładowy kod, dodaliśmy go tuż pod wszystkim innym.

Jeśli dodajesz to do twojego motywu lub wtyczki, możesz umieścić ten hak działania tam, gdzie skrypt jest faktycznie wymagany. Pozwala to zmniejszyć ilość zajmowanej pamięci przez twoją wtyczkę.

Teraz niektórzy mogą się zastanawiać, dlaczego robimy dodatkowy krok, aby najpierw zarejestrować skrypt, a następnie go zapisać? Cóż, pozwala to innym właścicielom witryn na wyrejestrowanie twojego skryptu bez modyfikowania rdzeń kodu wtyczki.

Prawidłowe wymuszanie stylów w WordPress

Podobnie jak skrypty, można również enqueue arkuszy stylów. Spójrz na poniższy przykład:

<?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' );  
?>

Zamiast używać wp_enqueue_script, używamy teraz wp_enqueue_style, aby dodać nasz arkusz stylów.

Powiadomienie, że użyliśmy haka działania wp_enqueue_scripts zarówno dla stylów, jak i skryptów. Pomimo nazwy, funkcja ta działa dla obu.

W powyższych przykładach użyliśmy funkcji plugins_url, aby wskazać lokalizację skryptu lub stylu, który chcieliśmy umieścić w kolejce.

Jeśli jednak używasz funkcji enqueue scripts w twoim motywie, po prostu użyj get_template_directory_uri() zamiast tego. Jeśli pracujesz z motywem potomnym, użyj get_stylesheet_directory_uri().

Poniżej znajduje się przykładowy kod:

<?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' );  
?>

Mamy nadzieję, że ten artykuł pomógł ci dowiedzieć się, jak prawidłowo dodawać JavaScript i style w WordPress. Możesz również zapoznać się z kodem źródłowym najlepszych wtyczek WordPress, aby uzyskać przykłady kodu z prawdziwego życia lub zapoznać się z naszym przewodnikiem na temat łatwego dodawania JavaScript do wpisów lub stron WordPress.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz na niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak WPBeginner jest finansowany, dlaczego to ma znaczenie i jak możesz nas wspierać. Oto nasz proces redakcyjny.

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.

Najlepszy zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi - zbiór produktów i zasobów związanych z WordPressem, które każdy profesjonalista powinien mieć!

Reader Interactions

35 komentarzyZostaw odpowiedź

  1. Schroedingers Katze

    Cheers, thanks for sharing! Great explanation.

    • WPBeginner Support

      You’re welcome :)

      Administrator

  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 ;

      Administrator

  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.

      Administrator

  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'); ?>

      Administrator

      • 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?

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszymi polityka komentarzy, a Twój adres e-mail NIE zostanie opublikowany. NIE używaj słów kluczowych w polu nazwy. Przeprowadźmy osobistą i konstruktywną rozmowę.