Przeczytałem Codex i kilka postów na blogu o używaniu jQuery w WordPressie i jest to bardzo frustrujące. Doszedłem do załadowania jQuery do functions.php
pliku, ale wszystkie przewodniki są kiepskie, ponieważ zakładają, że masz już mnóstwo doświadczenia z WordPressem. Na przykład mówią, że teraz, gdy ładuję jQuery przez functions.php
plik, teraz wszystko, co muszę zrobić, to załadować moje jQuery.
Jak dokładnie to robię? Do jakich plików mam dodać kod? Jak dokładnie dodać to dla pojedynczej strony WordPress?
Odpowiedzi:
Wiem, co masz na myśli, mówiąc o samouczkach. Oto jak to robię:
Najpierw musisz napisać swój skrypt. W swoim folderze z motywami utwórz folder o nazwie „js”. Utwórz w tym folderze plik dla swojego javascript. Np. Your-script.js. Dodaj swój skrypt jQuery do tego pliku (nie potrzebujesz
<script>
tagów w pliku .js).Oto przykład tego, jak może wyglądać Twój skrypt jQuery (w wp-content / themes / your-theme / js / your-scrript.js):
Zauważ, że używam jQuery, a nie $ na początku funkcji.
Ok, teraz otwórz plik functions.php swojego motywu. Będziesz chciał użyć tej
wp_enqueue_script()
funkcji, aby dodać swój skrypt, jednocześnie informując WordPress, że opiera się na jQuery. Oto jak to zrobić:Zakładając, że Twój motyw ma wp_head i wp_footer we właściwych miejscach, powinno to działać. Daj mi znać, jeśli potrzebujesz dalszej pomocy.
Pytania dotyczące WordPressa można zadawać na stronie Odpowiedzi WordPress .
źródło
Uncaught TypeError: Cannot read property 'fn' of undefined
iUncaught TypeError: undefined is not a function
błędy, nawet gdy inny skrypt jest w kolejce do pliku funkcji i działa dobrzePo długich poszukiwaniach w końcu znalazłem coś, co działa z najnowszym WordPressem. Oto kroki, które należy wykonać:
Upewnij się, że Twój niestandardowy plik jQuery .js wygląda następująco:
Przejdź do katalogu motywu, otwórz functions.php
Dodaj kod u góry, który wygląda tak:
źródło
Jeśli używasz motywu potomnego Wordpress do dodawania skryptów do motywu, powinieneś zmienić funkcję get_template_directory_uri na get_stylesheet_directory_uri, na przykład:
Motyw nadrzędny:
Motyw podrzędny:
get_template_directory_uri: / twoja-witryna / wp-content / themes / parent-theme
get_stylesheet_directory_uri: / twoja-witryna / wp-content / themes / child-theme
źródło
Możesz dodać jQuery lub javascript w pliku function.php motywu. Kod jest jak poniżej:
Aby uzyskać więcej informacji, odwiedź ten samouczek: http://www.codecanal.com/add-simple-jquery-script-wordpress/
źródło
Oprócz umieszczania skryptu za pomocą funkcji możesz „po prostu” dołączyć link (czyli znacznik relacyjny link) w nagłówku, stopce, w dowolnym szablonie, gdziekolwiek. Musisz tylko upewnić się, że ścieżka jest poprawna. Sugeruję użycie czegoś takiego (zakładając, że jesteś w katalogu swojego motywu).
Dobrą praktyką jest umieszczenie go tuż przed zamykającym tagiem body lub przynajmniej tuż przed stopką. Możesz także użyć dołączeń php lub kilku innych metod pobierania tego pliku.
źródło
** # Metoda 1: ** Spróbuj umieścić kod jQuery w oddzielnym pliku js.
Teraz zarejestruj ten skrypt w pliku functions.php.
Teraz gotowe.
Rejestracja skryptu w funkcjach ma swoje zalety, ponieważ pojawia się w
<head>
sekcji podczas ładowania strony, dlatego jest zawsze częścią header.php. Nie musisz więc powtarzać kodu za każdym razem, gdy piszesz nową zawartość HTML.# Metoda 2: umieść kod skryptu w treści strony pod
<script>
tagiem. Wtedy nie musisz go rejestrować w funkcjach.źródło
Możesz dodać niestandardowy javascript lub jquery za pomocą tej wtyczki.
https://wordpress.org/plugins/custom-javascript-editor/
Kiedy używasz jQuery, nie zapomnij użyć trybu jquery noconflict
źródło
Istnieje wiele samouczków i odpowiedzi na temat dodawania skryptu do strony. Ale nie mogłem znaleźć, jak uporządkować ten kod, aby działał poprawnie. Wynika to z tego, że $ nie jest używany w tej formie JQuery.
Oto mój kod i możesz go użyć jako szablonu.
źródło
Odpowiedź stąd: https://premium.wpmudev.org/blog/adding-jquery-scripts-wordpress/
źródło
Rozwiązania, które widziałem, są z perspektywy dodawania funkcji javascript do motywu. Jednak OP zapytał konkretnie: „Jak dokładnie dodać to dla pojedynczej strony WordPress?” Wygląda na to, że może to być sposób, w jaki używam javascript na moim blogu Wordpress, gdzie poszczególne posty mogą mieć różne "widżety" oparte na javascript. Na przykład post może pozwolić użytkownikowi zmienić zmienne (suwaki, pola wyboru, pola wprowadzania tekstu) i wydrukować lub wyświetlić wyniki.
Zaczynając z perspektywy JavaScript:
Nie myśl nawet o umieszczeniu znaczącej części kodu JavaScript w html swojego posta - utwórz plik JavaScript lub inne pliki z kodem.
Jeśli widżet JavaScript współdziała z kontrolkami i polami HTML, musisz zrozumieć, jak tworzyć zapytania i ustawiać te elementy z poziomu JavaScript, a także jak umożliwić elementom interfejsu użytkownika wywoływanie funkcji JavaScript. Oto kilka przykładów; po pierwsze, z JavaScript:
A z html:
Dodaj to do pliku .js, używając nazwy funkcji, która konfiguruje i rysuje widget JavaScript, gdy strona jest do tego gotowa:
W edytorze kodu Wordpress zazwyczaj umieszczam skrypty na końcu postu. Na przykład mam folder skryptów w moim głównym katalogu. Wewnątrz mam katalog narzędzi z typowym JavaScriptem, który mogą być współużytkowane przez niektóre moje posty - w tym przypadku niektóre z moich własnych funkcji matematycznych i biblioteki plotującej flotr2. Uważam, że wygodniej jest zgrupować JavaScript specyficzny dla postu w innym katalogu, z podkatalogami opartymi na dacie, zamiast na przykład korzystać z menedżera mediów.
Wordpress rejestruje jQuery, ale nie jest dostępne, chyba że powiesz Wordpressowi, że go potrzebujesz, poprzez kolejkowanie. Jeśli tego nie zrobisz, polecenie jQuery zakończy się niepowodzeniem. Wiele źródeł mówi, jak dodać to polecenie do pliku functions.php, ale zakładamy, że znasz kilka innych ważnych szczegółów.
Po pierwsze, edycja motywu jest złym pomysłem - każda przyszła aktualizacja motywu usunie zmiany. Utwórz motyw potomny. Oto jak:
https://developer.wordpress.org/themes/advanced-topics/child-themes/
Plik functions.php dziecka nie zastępuje pliku motywu nadrzędnego o tej samej nazwie, ale dodaje do niego. Samouczek motywów potomnych sugeruje, jak umieścić w kolejce plik nadrzędny i podrzędny style.css. Możemy po prostu dodać kolejną linię do tej funkcji, aby również umieścić w kolejce jQuery. Oto mój cały plik functions.php dla motywu potomnego:
źródło
Możesz użyć predefiniowanej funkcji WordPress, aby dodać plik skryptu do wtyczki WordPress.
Spójrz na post, który pomoże ci zrozumieć, jak łatwo możesz zaimplementować jQuery i CSS we wtyczce WordPress.
źródło
Nie. Nigdy nie powinieneś po prostu dodawać linku do zewnętrznego skryptu, takiego jak ten w WordPress. Dodanie ich do kolejki w pliku functions.php zapewnia, że skrypty są ładowane we właściwej kolejności.
Brak ich umieszczenia w kolejce może spowodować, że skrypt nie będzie działał, chociaż jest napisany poprawnie.
źródło
możesz zapisać swój skrypt w innym pliku i umieścić go w kolejce w ten sposób, załóżmy, że nazwa twojego skryptu to
image-ticker.js
.w miejsce
/js/image-ticker.js
ciebie należy umieścić ścieżkę do pliku js.źródło
W WordPress prawidłowym sposobem umieszczania skryptów w witrynie jest użycie następujących funkcji.
Te funkcje są wywoływane wewnątrz hooka
wp_enqueue_script
.Aby uzyskać więcej informacji i przykładów, możesz sprawdzić Dodawanie plików JS w Wordpress za pomocą wp_register_script & wp_enqueue_script
Przykład:
źródło
„Mamy Google” cit. Aby poprawnie używać skryptu wewnątrz wordpressa, wystarczy dodać biblioteki hostowane. Podobnie jak Google
Po wybraniu biblioteki, którą potrzebujesz, połącz ją przed niestandardowym skryptem: exmpl
i według własnego scenariusza
źródło
Czy wystarczy załadować jQuery?
1) Jak mówią inni przewodnicy, zarejestruj swój skrypt w pliku functions.php w następujący sposób:
2) Zauważ, że nie musimy rejestrować jQuery, ponieważ jest już w rdzeniu. Upewnij się, że wp_footer () jest wywoływany w twoim footer.php, a wp_head () w twoim header.php (tam wypisze tag skryptu), a jQuery załaduje się na każdej stronie. Kiedy umieszczasz jQuery w kolejce za pomocą WordPressa, będzie on w trybie „bez konfliktu”, więc musisz użyć jQuery zamiast $. Jeśli chcesz, możesz wyrejestrować jQuery i ponownie zarejestrować własną, wykonując wp_deregister_script ('jquery').
źródło
źródło