Jak naprawić błąd „Nieprzechwycony błąd typu: $ nie jest funkcją” w WordPress

Opublikowany: 2024-03-20

Ach, klasyczny błąd „Nieprzechwycony błąd typu: $ nie jest funkcją” w WordPressie. Jeśli zanurzyłeś się w wodzie związanej z tworzeniem witryn WordPress, być może natknąłeś się na ten błąd. To tak, jakbyś chciał uruchomić samochód rano i zdać sobie sprawę, że nie chce odpalić, bo używasz złego kluczyka. W WordPressie tym samochodem jest jQuery, a symbol „$” to klucz, który czasami nie pasuje.

Co oznacza błąd „Nieprzechwycony błąd typu: $ nie jest funkcją”?

Rozbijmy to. jQuery, ulubiona biblioteka JavaScript, upraszcza przeglądanie dokumentów HTML, obsługę zdarzeń, animowanie i interakcje Ajax w celu szybkiego tworzenia stron internetowych. Jest to zestaw narzędzi, na którym opiera się wiele motywów i wtyczek WordPress ze względu na swoje fantazyjne funkcje.

stronie internetowej jQuery. Użycie symbolu dolara w tej bibliotece JavaScript powoduje błąd „Nieprzechwycony błąd typu: $ nie jest funkcją” w WordPress.

W jQuery symbol „$” jest skrótem od „jQuery”, dzięki czemu kod jest czystszy i łatwiejszy do napisania. Jednak gdy WordPress zgłasza błąd „Nieprzechwycony błąd typu: $ nie jest funkcją”, zasadniczo mówi: „Hej, nie rozpoznaję tego symbolu „$” jako części jQuery”.

Może się to zdarzyć z kilku powodów, ale sprowadza się to do WordPressa i jego unikalnego sposobu radzenia sobie z jQuery, co często prowadzi do zamieszania i tego błędu.

Jedną z najtrudniejszych części błędu „Nieprzechwycony błąd typu: $ nie jest funkcją” jest jego niejasny charakter. Nie zawiera szczegółowych wyjaśnień ani nie wskazuje bezpośrednio problematycznego fragmentu kodu. Przypomina to kontrolkę silnika w samochodzie; wiesz, że coś jest nie tak, ale nie możesz zlokalizować problemu bez dalszego zbadania. Ta niejasność może być frustrująca, szczególnie jeśli dopiero zaczynasz debugowanie w WordPressie.

Dlaczego pojawia się błąd „Nieprzechwycony błąd typu: $ nie jest funkcją”?

Za tym błędem kryje się kilka typowych podejrzanych:

  1. Biblioteka jQuery nie jest poprawnie załadowana : Jeśli WordPress nie może znaleźć jQuery, symbol „$” nic dla niego nie znaczy. To jak próbować czytać książkę w ciemności. Wiesz, że te słowa tam są, ale nie możesz ich zobaczyć.
  2. WordPress jest w trybie noConfused : Domyślnie WordPress ładuje jQuery w sposób zapobiegający jego kolizjom z innymi bibliotekami, które również mogą używać symbolu „$”. To trochę tak, jakby w kuchni było dwóch szefów kuchni i obaj upierali się, że używają tego samego noża. Aby uniknąć kulinarnej katastrofy, WordPress cofa się i mówi: „Dobrze, nie użyję symbolu „$”.
  3. Konflikty wtyczek lub motywów : Czasami błąd pojawia się, ponieważ wtyczka lub motyw nie współpracuje z innymi, używając symbolu „$” w sposób sprzeczny z domyślnymi ustawieniami WordPressa.

Znalezienie źródła błędu

Chociaż znajomość konkretnej przyczyny błędu nie jest konieczna do jego naprawienia, jeśli chcesz wiedzieć, co się dzieje, masz kilka opcji, które pomogą Ci wyśledzić źródło tego nieuchwytnego błędu.

Twoje umiejętności detektywistyczne wchodzą w grę, uzbrojone w dwa potężne narzędzia: konsolę programisty i dzienniki debugowania WordPress.

Konsola programisty : dostęp do tego bezcennego narzędzia możesz uzyskać z poziomu przeglądarki.Kliknij prawym przyciskiem myszy swoją stronę internetową, wybierz „Sprawdź” lub „Sprawdź element”, a następnie kliknij kartę „Konsola”.

Karta konsoli jest podświetlona w narzędziach programistycznych Chrome. Jest to przydatne do wyśledzenia źródła błędu „Nieprzechwycony błąd typu: $ nie jest funkcją” w WordPress.

Ta konsola wyświetla skarbnicę informacji o tym, co dzieje się za kulisami Twojej witryny, w tym o naszym nieuchwytnym błędzie. To jak mieć mapę, która wskazuje, gdzie leży skarb (lub, w tym przypadku, problem).

Dzienniki debugowania WordPressa : w przypadku problemów, które sięgają głębiej w witrynę WordPress, włączenie WP_DEBUG może uratować życie.Ta funkcja, jeśli jest włączona, rejestruje wszystkie błędy, ostrzeżenia i uwagi w pliku debug.log w katalogu wp-content. Aby go aktywować, musisz edytować plik wp-config.php i ustawić WP_DEBUG na true.

Plik wp-config.php jest wyświetlany w edytorze tekstu z trybem wp_debug ustawionym na true. Może to pomóc w znalezieniu źródła nieprzechwyconego błędu typu, który nie jest błędem funkcji w WordPress.

Pomyśl o tym jak o skonfigurowaniu kamer monitorujących w całej witrynie; nic nie umknie bez nagrania.

Jak naprawić błąd „Nieprzechwycony błąd typu: $ nie jest funkcją” w WordPress

Bez względu na konkretną przyczynę błędu, w tym miejscu guma styka się z drogą. Naprawienie błędu „Uncaught TypeError: $ is not afunction” polega na znalezieniu odpowiedniego kluczyka do uruchomienia samochodu i istnieją dwie proste strategie obejścia tej przeszkody bez zmiany trybu „noConfused”.

1. Wybierz „jQuery” zamiast „$”

Kiedy Twoje skrypty natkną się na symbol „$” i wygenerują błąd, jednym prostym rozwiązaniem jest zastąpienie każdego wystąpienia „$” słowem „jQuery” w kodzie. Dla odrobiny kontekstu, oto jak wygląda standardowy fragment kodu jQuery przy użyciu „$”:

 $(funkcja() {
  // Twój kod niecierpliwie czeka tutaj na uruchomienie, gdy DOM zostanie w pełni załadowany
});

W obliczu błędu prostym, ale skutecznym rozwiązaniem jest zastąpienie „$” słowem „jQuery”. Zatem poprawiony fragment będzie wyglądał następująco:

 jQuery(funkcja() {
  // Eureka! Kod działa płynnie, nie powodując żadnych błędów.
});

Dla tych, którzy wolą bardziej subtelne podejście, otoczenie kodu natychmiastowo wywoływanym wyrażeniem funkcyjnym (IIFE), które przekazuje symbol „$”, może zmienić zasady gry. Ta technika pozwala bezpiecznie używać „$” wewnątrz funkcji bez wywoływania budzącego grozę błędu:

 jQuery(funkcja($) {
    // Wewnątrz tego magicznego opakowania „$” jest wyłącznie do Twojej dyspozycji.
    konsola.log($('.menu-podstawowe'));
});

Po wdrożeniu tych poprawek użyj narzędzi programistycznych przeglądarki lub zajrzyj do dziennika debugowania WordPress, aby sprawdzić, czy zniknął błąd „Nieprzechwycony błąd typu: $ nie jest funkcją”. Jeśli błąd będzie się powtarzał, rozważ zmianę mapowania „jQuery” na inny alias, aby uniknąć dalszych komplikacji.

2. Utwórz niestandardowy alias dla jQuery

Ponieważ „$” służy jako domyślny skrót jQuery, tryb „noConfused” WordPressa może wymagać alternatywnego aliasu, aby ominąć konflikty bibliotek. To podejście jest zaskakująco proste i pozwala przypisać nowy symbol za pomocą tylko linii kodu:

 var $j = jQuery;

Ten fragment skutecznie przypisuje „$j” jako nowy alias dla jQuery, chociaż możesz wybrać dowolny symbol, który Ci odpowiada. Ta metoda jest szczególnie atrakcyjna dla programistów, dla których wielokrotne wpisywanie „jQuery” jest nieco kłopotliwe.

Warto zaznaczyć, że nawet po założeniu nowego aliasu opcja użycia „jQuery” pozostaje na stole.

Zakończenie tego

Stosując jedną z tych dwóch metod, możesz z łatwością ominąć błąd „Nieprzechwycony błąd typu: $ nie jest funkcją” i zapewnić płynne działanie skryptów jQuery w WordPressie.

Niezależnie od tego, czy zdecydujesz się zastąpić „$” bezpośrednio „jQuery”, czy też utworzysz niestandardowy alias, obie ścieżki prowadzą do harmonijnego współistnienia jQuery z innymi skryptami w trybie „noConfused” WordPressa. Pamiętaj, że kluczem do sprawnego działania witryny internetowej jest zrozumienie i dostosowanie się do jej podstawowych ram.