Użyj wp_enqueue_script()
w swoim motywie
Odpowiedź podstawowym jest użycie wp_enqueue_script()
w wp_enqueue_scripts
hak do przodu admin_enqueue_scripts
dla administratora. Może to wyglądać mniej więcej tak (zakładając, że dzwonisz z functions.php
pliku motywu ; zwróć uwagę na to, jak odwołuję się do katalogu arkuszy stylów):
<?php
add_action( 'wp_enqueue_scripts', 'mysite_enqueue' );
function mysite_enqueue() {
$ss_url = get_stylesheet_directory_uri();
wp_enqueue_script( 'mysite-scripts', "{$ss_url}/js/mysite-scripts.js" );
}
To są podstawy.
Wstępnie zdefiniowane i wiele skryptów zależnych
Powiedzmy, że chcesz dołączyć jQuery i jQuery UI Sortable z listy domyślnych skryptów zawartych w WordPress i chcesz, aby Twój skrypt był od nich zależny? Łatwo, wystarczy dołączyć dwa pierwsze skrypty za pomocą wstępnie zdefiniowanych uchwytów zdefiniowanych w WordPress, a dla swojego skryptu podaj trzeci parametr, do wp_enqueue_script()
którego należy tablica uchwytów skryptu używanych przez każdy skrypt, na przykład:
<?php
add_action( 'wp_enqueue_scripts', 'mysite_enqueue' );
function mysite_enqueue() {
$ss_url = get_stylesheet_directory_uri();
wp_enqueue_script( 'mysite-scripts', "{$ss_url}/js/mysite-scripts.js", array( 'jquery', 'jquery-ui-sortable' ) );
}
Skrypty we wtyczce
Co jeśli chcesz to zrobić we wtyczce? Użyj plugins_url()
funkcji, aby określić adres URL pliku JavaScript:
<?php
define( 'MY_PLUGIN_VERSION', '2.0.1' );
add_action( 'wp_enqueue_scripts', 'my_plugin_enqueue' );
function my_plugin_enqueue() {
wp_enqueue_script( 'my-script', plugins_url('/js/my-script.js',__FILE__), array('jquery','jquery-ui-sortable'), MY_PLUGIN_VERSION );
}
Wersjonowanie skryptów
Zauważ też, że powyżej podaliśmy naszemu pluginowi numer wersji i przekazaliśmy go jako czwarty parametr do wp_enqueue_script()
. Numer wersji jest wyprowadzany w źródle jako argument zapytania w adresie URL do skryptu i służy do zmuszenia przeglądarki do ponownego pobrania ewentualnie buforowanego pliku, jeśli wersja zostanie zmieniona.
Ładuj skrypty tylko tam, gdzie to konieczne
1-ty reguła Web Performance mówi Minimalizacja żądań HTTP , więc w miarę możliwości należy ograniczyć skrypty, aby załadować tylko w razie potrzeby. Na przykład, jeśli potrzebujesz skryptu tylko w adminie, ogranicz go do stron administracyjnych za pomocą admin_enqueue_scripts
haka:
<?php
define( 'MY_PLUGIN_VERSION', '2.0.1' );
add_action( 'admin_enqueue_scripts', 'my_plugin_admin_enqueue' );
function my_plugin_admin_enqueue() {
wp_enqueue_script( 'my-script', plugins_url( '/js/my-script.js', __FILE__ ), array( 'jquery', 'jquery-ui-sortable' ), MY_PLUGIN_VERSION );
}
Załaduj swoje skrypty w stopce
Jeśli twoje skrypty są jednym ze skryptów, które należy załadować do stopki, istnieje piąty parametr, wp_enqueue_script()
który mówi WordPressowi, aby go opóźnił i umieścił w stopce (zakładając, że Twój motyw nie zachował się źle i że rzeczywiście wywołuje hak wp_footer jak wszystkie dobre motywy WordPress powinny ):
<?php
define( 'MY_PLUGIN_VERSION', '2.0.1' );
add_action( 'admin_enqueue_scripts', 'my_plugin_admin_enqueue' );
function my_plugin_admin_enqueue() {
wp_enqueue_script( 'my-script', plugins_url( '/js/my-script.js', __FILE__ ), array( 'jquery', 'jquery-ui-sortable' ), MY_PLUGIN_VERSION, true );
}
Dokładniejsza kontrola ziarna
Jeśli potrzebujesz dokładniejszej kontroli, Ozh ma świetny artykuł zatytułowany Porady : ładowanie Javascript za pomocą wtyczki WordPress, która zawiera więcej szczegółów.
Wyłączanie skryptów w celu uzyskania kontroli
Justin Tadlock ma fajny artykuł zatytułowany Jak wyłączyć skrypty i style, jeśli chcesz:
- Łącz wiele plików w pojedyncze pliki (przebieg może się różnić w JavaScript tutaj).
- Załaduj pliki tylko na strony, na których używamy skryptu lub stylu.
- Przestań używać! Ważne w naszym pliku style.css, aby dokonywać prostych korekt CSS.
Przekazywanie wartości z PHP do JS za pomocą wp_localize_script()
Na swoim blogu Vladimir Prelovac ma świetny artykuł zatytułowany Najlepsza praktyka dodawania kodu JavaScript do wtyczek WordPress, w którym omawia użycie, wp_localize_script()
aby umożliwić ustawienie wartości zmiennych w PHP po stronie serwera, aby później użyć w JavaScript po stronie klienta.
Naprawdę drobnoziarnista kontrola dzięki wp_print_scripts()
I na koniec, jeśli potrzebujesz naprawdę drobiazgowej kontroli, możesz zajrzeć, wp_print_scripts()
jak omówiono na Beer Planet w poście zatytułowanym Jak dołączyć CSS i JavaScript warunkowo i tylko wtedy, gdy jest potrzebny postom .
Epiloque
To wszystko na temat najlepszych praktyk dołączania plików JavaScript do WordPress. Jeśli coś przeoczyłem (co prawdopodobnie mam), daj mi znać w komentarzach, abym mógł dodać aktualizację dla przyszłych podróżników.