Cum să remediați eroarea „Uncaught TypeError: $ is Not a Function” în WordPress

Publicat: 2024-03-20

Ah, eroarea clasică „Uncaught TypeError: $ is not a function” din WordPress. Dacă v-ați scufundat degetele în apele dezvoltării site-ului WordPress, este posibil să fi dat peste această eroare. Este ca și cum ai încerca să-ți pornești mașina dimineața doar pentru a realiza că nu se va întoarce pentru că folosești cheia greșită. În WordPress, jQuery este acea mașină, iar simbolul „$” este cheia care uneori nu se potrivește.

Care este eroarea „Uncaught TypeError: $ is not a function”?

Să-l descompunem. jQuery, o bibliotecă JavaScript îndrăgită, simplifică parcurgerea documentelor HTML, gestionarea evenimentelor, animarea și interacțiunile Ajax pentru o dezvoltare web rapidă. Este un set de instrumente pe care se bazează multe teme și pluginuri WordPress pentru caracteristicile lor luxoase.

site-ul jQuery. Utilizarea simbolului dolarului de către această bibliotecă javascript provoacă eroarea „Uncaught TypeError: $ is not a function” în WordPress.

În jQuery, simbolul „$” este prescurtarea pentru „jQuery”, ceea ce face codul mai curat și mai ușor de scris. Cu toate acestea, când WordPress afișează eroarea „Uncaught TypeError: $ is not a function”, în esență spune „Hei, nu recunosc acest simbol „$” ca parte a jQuery.”

Acest lucru se poate întâmpla din câteva motive, dar se rezumă la WordPress și la modul său unic de a trata jQuery, ceea ce duce adesea la confuzie și la această eroare.

Una dintre cele mai complicate părți despre eroarea „Uncaught TypeError: $ is not a function” este natura sa vagă. Nu vine cu o explicație detaliată și nu vă indică direct fragmentul problematic de cod. Este asemănător cu lumina motorului de verificare a mașinii tale; știi că ceva nu este în regulă, dar nu poți identifica problema fără investigații suplimentare. Această neclaritate poate fi frustrantă, mai ales dacă sunteți nou la depanarea în WordPress.

De ce apare eroarea „Uncaught TypeError: $ is not a function”?

Există câțiva suspecți obișnuiți în spatele acestei erori:

  1. Biblioteca jQuery nu este încărcată corect : dacă WordPress nu poate găsi jQuery, atunci simbolul „$” nu înseamnă nimic. E ca și cum ai încerca să citești o carte în întuneric. Știi că cuvintele sunt acolo, dar nu le poți vedea.
  2. WordPress este în modul noConflict : în mod implicit, WordPress încarcă jQuery într-un mod care împiedică ciocnirea cu alte biblioteci care ar putea folosi și simbolul „$”. Este un pic ca și cum ai avea doi bucătari într-o bucătărie, ambii insistând să folosească același cuțit. Pentru a evita o catastrofă culinară, WordPress se dă înapoi și spune: „Bine, nu voi folosi simbolul „$”.
  3. Conflicte de plugin sau temă : Uneori, eroarea apare deoarece un plugin sau o temă nu se joacă bine cu alții, folosind simbolul „$” într-un mod care intră în conflict cu setările implicite ale WordPress.

Găsirea sursei erorii

Deși cunoașterea cauzei specifice a erorii nu este necesară pentru a o remedia, dacă trebuie să știți ce se întâmplă, aveți câteva opțiuni pentru a vă ajuta să găsiți sursa acestei erori evazive.

Abilitățile tale de detectiv intră în joc, înarmate cu două instrumente puternice: consola pentru dezvoltatori și jurnalele de depanare WordPress.

Consola pentru dezvoltatori : puteți accesa acest instrument neprețuit din browser.Faceți clic dreapta pe pagina dvs. web, selectați „Inspectați” sau „Inspectați elementul”, apoi faceți clic pe fila „Consolă”.

Fila consolă este evidențiată în instrumentele pentru dezvoltatori Chrome. Acest lucru este util pentru a găsi sursa erorii „Uncaught TypeError: $ is not a function” în WordPress.

Această consolă afișează o comoară de informații despre ceea ce se întâmplă în culisele site-ului dvs., inclusiv eroarea noastră evazivă. Este ca și cum ai avea o hartă care te indică unde se află comoara (sau, în acest caz, problema).

Jurnalele de depanare WordPress : pentru problemele care apar mai adânc în site-ul dvs. WordPress, activarea WP_DEBUG poate fi o salvare.Această caracteristică, când este activată, înregistrează toate erorile, avertismentele și notificările într-un fișier debug.log din directorul wp-content. Pentru a-l activa, va trebui să editați fișierul wp-config.php și să setați WP_DEBUG la true.

Fișierul wp-config.php este afișat într-un editor de text cu modul wp_debug setat la true. Acest lucru poate ajuta la găsirea sursei tipului neprins.Eroarea nu este o eroare de funcție în WordPress.

Gândiți-vă la asta ca la crearea de camere de supraveghere pe site-ul dvs.; nimic nu scapă fără să fie înregistrat.

Cum să remediați eroarea „Uncaught TypeError: $ is not a function” în WordPress

Indiferent de cauza specifică a erorii, aici este locul în care cauciucul se întâlnește cu drumul. Remedierea erorii „Uncaught TypeError: $ is not a function” se referă la găsirea cheii potrivite pentru a porni mașina și există două strategii simple pentru a naviga în jurul acestui obstacol fără a modifica modul „noConflict”.

1. Optați pentru „jQuery” în loc de „$”

Când scripturile dvs. dau peste simbolul „$” și aruncă o eroare, o soluție simplă este să înlocuiți fiecare instanță a lui „$” cu „jQuery” în cod. Pentru un pic de context, iată cum arată un fragment jQuery standard folosind „$”:

 $(funcție() {
  // Codul tău așteaptă cu nerăbdare aici să ruleze odată ce DOM-ul este complet încărcat
});

Înfruntând eroarea din față, o soluție simplă, dar eficientă este înlocuirea „$” cu „jQuery”. Prin urmare, fragmentul revizuit ar fi:

 jQuery(funcție() {
  // Eureka! Codul rulează fără probleme, fără a provoca erori.
});

Pentru cei care preferă o abordare mai subtilă, învăluirea codului într-o expresie a funcției imediat invocată (IIFE) care predă simbolul „$” poate fi un schimbător de joc. Această tehnică vă permite să utilizați în siguranță „$” în interiorul funcției fără a invoca eroarea temută:

 jQuery(funcție($) {
    // În interiorul acestui înveliș magic, „$” vă este comandat.
    console.log($('.primary-menu'));
});

După implementarea acestor modificări, utilizați instrumentele de dezvoltare ale browserului sau aruncați o privire în jurnalul de depanare WordPress pentru a verifica dispariția erorii „Uncaught TypeError: $ is not a function”. În cazul în care eroarea persistă, luați în considerare remaparea „jQuery” la un alt alias pentru a evita alte complicații.

2. Creați un alias personalizat pentru jQuery

Deoarece „$” servește ca prescurtare implicită a jQuery, modul „noConflict” al WordPress ar putea necesita un alias alternativ pentru a evita ciocnirile bibliotecii. Această abordare este surprinzător de simplă, permițându-vă să atribuiți un nou simbol doar cu o linie de cod:

 var $j = jQuery;

Acest fragment atribuie efectiv „$j” ca alias nou pentru jQuery, deși sunteți liber să alegeți orice simbol care rezonează cu dvs. Această metodă este deosebit de atrăgătoare pentru dezvoltatorii cărora li se pare puțin greoaie să tastați „jQuery” în mod repetat.

Este demn de remarcat faptul că, chiar și după configurarea unui nou alias, opțiunea de a utiliza „jQuery” rămâne pe masă.

Încheind-o

Prin adoptarea oricăreia dintre aceste două metode, puteți ocoli cu grație eroarea „Uncaught TypeError: $ is not a function” și vă puteți asigura că scripturile jQuery rulează perfect în WordPress.

Indiferent dacă alegeți să înlocuiți „$” cu „jQuery” direct sau să creați un alias personalizat, ambele căi duc la coexistența armonioasă a jQuery cu alte scripturi în modul „noConflict” al WordPress. Amintiți-vă, cheia unui site web fără probleme constă în înțelegerea și adaptarea la cadrele sale de bază.