WordPress'te 'Yakalanmayan TypeError: $ İşlev Değildir' Hatası Nasıl Düzeltilir

Yayınlanan: 2024-03-20

Ah, WordPress'teki klasik "Uncaught TypeError: $ bir işlev değil" hatası. Ayak parmaklarınızı WordPress site geliştirmenin sularına daldırdıysanız, bu hatayla karşılaşmış olabilirsiniz. Bu, sabahları arabanızı çalıştırmaya çalışırken yanlış anahtarı kullandığınız için devrilmeyeceğini fark etmeye benzer. WordPress'te jQuery o arabadır ve '$' sembolü bazen uymayan anahtardır.

“Yakalanmayan TypeError: $ bir işlev değil” hatası nedir?

Hadi parçalayalım. Sevilen bir JavaScript kitaplığı olan jQuery, hızlı web geliştirme için HTML belgelerinin geçişini, olay işlemeyi, animasyonu ve Ajax etkileşimlerini basitleştirir. Birçok WordPress temasının ve eklentisinin şık özellikleri nedeniyle güvendiği bir araç setidir.

jQuery'nin web sitesi. Bu javascript kütüphanesinin dolar sembolünü kullanması, WordPress'te "Uncaught TypeError: $ is not a function" hatasına neden oluyor.

JQuery'de '$' sembolü "jQuery"nin kısaltmasıdır ve kodun daha temiz ve yazılmasını kolaylaştırır. Ancak, WordPress "Uncaught TypeError: $ is not a function" hatası verdiğinde, aslında "Hey, bu '$' sembolünü jQuery'nin bir parçası olarak tanımıyorum" diyor.

Bu birkaç nedenden dolayı gerçekleşebilir, ancak WordPress'e ve jQuery ile başa çıkmanın benzersiz yöntemine indirgenir ve bu da genellikle kafa karışıklığına ve bu hataya yol açar.

"Uncaught TypeError: $ is not a function" hatasıyla ilgili en zorlu kısımlardan biri, belirsiz doğasıdır. Ayrıntılı bir açıklamayla gelmiyor veya sizi doğrudan sorunlu kod parçasına yönlendirmiyor. Arabanızın kontrol motoru ışığına benzer; Bir şeylerin ters gittiğini biliyorsunuz, ancak daha fazla araştırma yapmadan sorunun yerini belirleyemezsiniz. Bu belirsizlik sinir bozucu olabilir, özellikle de WordPress'te hata ayıklama konusunda yeniyseniz.

Neden “Yakalanmayan TypeError: $ bir işlev değil” hatası çıkıyor?

Bu hatanın arkasında birkaç olağan şüpheli var:

  1. JQuery kütüphanesi düzgün yüklenmemiş : WordPress jQuery'yi bulamazsa '$' sembolü onun için hiçbir şey ifade etmez. Karanlıkta kitap okumaya çalışmak gibi bir şey bu. Kelimelerin orada olduğunu biliyorsun ama göremiyorsun.
  2. WordPress noConflict modundadır : Varsayılan olarak WordPress, jQuery'yi '$' sembolünü kullanabilecek diğer kitaplıklarla çakışmasını önleyecek şekilde yükler. Bu biraz mutfakta aynı bıçağı kullanmakta ısrar eden iki şefin bulunmasına benziyor. Bir mutfak felaketini önlemek için WordPress geri adım atıyor ve şöyle diyor: "Pekala, '$' sembolünü kullanmayacağım."
  3. Eklenti veya tema çakışmaları : Bazen hata, bir eklentinin veya temanın diğerleriyle uyumlu olmaması ve '$' sembolünü WordPress'in varsayılan ayarlarıyla çelişecek şekilde kullanması nedeniyle ortaya çıkar.

Hatanın kaynağını bulma

Hatanın özel nedenini bilmek, hatayı düzeltmek için gerekli olmasa da, neler olup bittiğini bilmeniz gerekiyorsa, bu anlaşılması zor hatanın kaynağını bulmanıza yardımcı olacak birkaç seçeneğiniz vardır.

İki güçlü araçla donatılmış dedektif becerileriniz devreye giriyor: geliştirici konsolu ve WordPress hata ayıklama günlükleri.

Geliştirici konsolu : Bu paha biçilmez araca tarayıcınızdan erişebilirsiniz.Web sayfanıza sağ tıklayın, “İncele” veya “Öğeyi Denetle” seçeneğini seçin ve ardından “Konsol” sekmesine tıklayın.

Konsol sekmesi Chrome'un geliştirici araçlarında vurgulanmıştır. Bu, WordPress'teki "Uncaught TypeError: $ is not a function" hatasının kaynağını bulmak için faydalıdır.

Bu konsol, yakalanması zor hatalarımız da dahil olmak üzere, web sitenizin perde arkasında olup bitenler hakkında bilgi hazinesini görüntüler. Bu, sizi hazinenin (veya bu durumda sorunun) nerede olduğunu gösteren bir haritaya sahip olmak gibidir.

WordPress hata ayıklama günlükleri : WordPress sitenizin derinliklerine inen sorunlar için WP_DEBUG'u açmak cankurtaran olabilir.Bu özellik etkinleştirildiğinde tüm hataları, uyarıları ve bildirimleri wp-content dizini içindeki debug.log dosyasına kaydeder. Etkinleştirmek için wp-config.php dosyanızı düzenlemeniz ve WP_DEBUG'ı true olarak ayarlamanız gerekir.

wp-config.php dosyası, wp_debug modu true olarak ayarlanmış bir metin düzenleyicide görüntülenir. Bu, yakalanmamış yazım hatasının kaynağını bulmanıza yardımcı olabilir, WordPress'te bir işlev hatası değildir.

Bunu sitenizin her yerine güvenlik kameraları kurmak olarak düşünün; hiçbir şey kaydedilmeden geçip gitmez.

WordPress'te “Yakalanmayan TypeError: $ bir işlev değil” hatası nasıl düzeltilir

Hatanın spesifik nedeni ne olursa olsun, kauçuğun yolla buluştuğu yer burasıdır. "Uncaught TypeError: $ bir işlev değil" hatasını düzeltmek, arabayı çalıştırmak için doğru anahtarı bulmakla ilgilidir ve "noConflict" modunu değiştirmeden bu engeli aşmak için iki basit strateji vardır.

1. '$' yerine “jQuery”yi tercih edin

Komut dosyalarınız '$' sembolüne rastladığında ve bir hata verdiğinde, basit bir düzeltme, kodunuzdaki her '$' örneğini “jQuery” ile değiştirmektir. Biraz bağlam için, standart bir jQuery pasajının '$' kullanılarak nasıl göründüğü aşağıda açıklanmıştır:

 $(işlev() {
  // DOM tamamen yüklendikten sonra kodunuz burada çalışmayı sabırsızlıkla bekliyor
});

Hatayla doğrudan yüzleşmek için basit ama etkili bir çözüm, '$' yerine 'jQuery' koymaktır. Dolayısıyla revize edilen pasaj şu şekilde olacaktır:

 jQuery(işlev() {
  // Evreka! Kod herhangi bir hataya neden olmadan sorunsuz bir şekilde çalışır.
});

Daha incelikli bir yaklaşımı tercih edenler için, kodunuzu '$' sembolünü içeren, hemen çağrılan bir işlev ifadesine (IIFE) sarmak oyunun kurallarını değiştirebilir. Bu teknik, korkunç hatayı çağırmadan işlevin içinde '$'ı güvenli bir şekilde kullanmanıza olanak tanır:

 jQuery(işlev($) {
    // Bu sihirli paketin içinde "$" komutunun tamamı sizindir.
    console.log($('.primary-menu'));
});

Bu ince ayarları uyguladıktan sonra tarayıcınızın geliştirici araçlarını kullanın veya "Uncaught TypeError: $ is not a function" hatasının kaybolduğunu doğrulamak için WordPress hata ayıklama günlüğüne göz atın. Hata devam ederse, daha fazla komplikasyondan kaçınmak için "jQuery"yi farklı bir takma adla yeniden eşlemeyi düşünün.

2. jQuery için özel bir takma ad oluşturun

'$', jQuery'nin varsayılan kısa yolu olarak hizmet ettiğinden, WordPress'in "noConflict" modu, kitaplık çakışmalarından kaçınmak için alternatif bir takma ad gerektirebilir. Bu yaklaşım şaşırtıcı derecede basittir ve yalnızca bir kod satırıyla yeni bir sembol atamanıza olanak tanır:

 var $j = jQuery;

Bu kod parçası, “$j”yi jQuery için yeni bir takma ad olarak etkili bir şekilde atar, ancak size uygun herhangi bir sembolü seçmekte özgürsünüz. Bu yöntem özellikle "jQuery" yazmayı sürekli olarak biraz hantal bulan geliştiriciler için caziptir.

Yeni bir takma ad ayarladıktan sonra bile "jQuery" kullanma seçeneğinin masada kaldığını belirtmekte fayda var.

Sarmalamak

Bu iki yöntemden herhangi birini benimseyerek, "Uncaught TypeError: $ is not a function" hatasını zarif bir şekilde atlatabilir ve jQuery komut dosyalarınızın WordPress'te sorunsuz bir şekilde çalışmasını sağlayabilirsiniz.

İster '$'ı doğrudan "jQuery" ile değiştirmeyi seçin, ister özel bir takma ad oluşturun, her iki yol da jQuery'nin WordPress'in "noConflict" modundaki diğer komut dosyalarıyla uyumlu bir şekilde bir arada bulunmasına yol açar. Sorunsuz ilerleyen bir web sitesinin anahtarının, temel çerçevelerini anlamak ve bunlara uyum sağlamakta yattığını unutmayın.