كيفية إصلاح خطأ "خطأ TypeError: $ ليس دالة" في WordPress

نشرت: 2024-03-20

آه، الخطأ الكلاسيكي "Uncaught TypeError: $ ليس دالة" في WordPress. إذا كنت قد غطست أصابع قدميك في مياه تطوير موقع WordPress، فربما تكون قد عثرت على هذا الخطأ. إن الأمر يشبه محاولة تشغيل سيارتك في الصباح ثم تدرك أنها لن تنقلب لأنك تستخدم المفتاح الخطأ. في WordPress، jQuery هي تلك السيارة، والرمز "$" هو المفتاح الذي لا يكون مناسبًا في بعض الأحيان.

ما هو الخطأ "لم يتم اكتشاف TypeError: $ ليس دالة"؟

دعونا كسرها. تعمل مكتبة jQuery، وهي مكتبة JavaScript محبوبة، على تبسيط عملية اجتياز مستندات HTML ومعالجة الأحداث والتحريك وتفاعلات Ajax من أجل التطوير السريع للويب. إنها مجموعة أدوات تعتمد عليها العديد من سمات WordPress والمكونات الإضافية لميزاتها الرائعة.

موقع jQuery. يؤدي استخدام مكتبة جافا سكريبت لرمز الدولار إلى ظهور الخطأ "Uncaught TypeError: $ is not a function" في WordPress.

في jQuery، الرمز "$" هو اختصار لـ "jQuery"، مما يجعل التعليمات البرمجية أكثر وضوحًا وأسهل في الكتابة. ومع ذلك، عندما يعرض WordPress الخطأ "Uncaught TypeError: $ is not a function"، فهو يقول في الأساس، "مرحبًا، لا أتعرف على الرمز '$' هذا كجزء من jQuery."

يمكن أن يحدث هذا لعدة أسباب، لكنه يتلخص في WordPress وطريقته الفريدة في التعامل مع jQuery، والتي غالبًا ما تؤدي إلى الارتباك وهذا الخطأ.

أحد أصعب الأجزاء المتعلقة بالخطأ "Uncaught TypeError: $ is not a function" هو طبيعته الغامضة. لا يأتي مع شرح مفصل أو يوجهك مباشرة إلى الجزء الإشكالي من التعليمات البرمجية. إنه يشبه ضوء فحص محرك سيارتك؛ أنت تعلم أن هناك خطأ ما، لكن لا يمكنك تحديد المشكلة دون إجراء مزيد من التحقيق. قد يكون هذا الغموض محبطًا، خاصة إذا كنت جديدًا في مجال تصحيح الأخطاء في WordPress.

لماذا يظهر الخطأ "Uncaught TypeError: $ is not a function"؟

هناك عدد قليل من المشتبه بهم المعتادين وراء هذا الخطأ:

  1. لم يتم تحميل مكتبة jQuery بشكل صحيح : إذا لم يتمكن WordPress من العثور على jQuery، فإن الرمز '$' لا يعني شيئًا له. إنه مثل محاولة قراءة كتاب في الظلام. أنت تعلم أن الكلمات موجودة، لكن لا يمكنك رؤيتها.
  2. WordPress في وضع noConflict : افتراضيًا، يقوم WordPress بتحميل jQuery بطريقة تمنعه ​​من التعارض مع المكتبات الأخرى التي قد تستخدم أيضًا الرمز '$'. إنه يشبه إلى حد ما وجود طهاتين في المطبخ، وكلاهما يصران على استخدام نفس السكين. لتجنب كارثة الطهي، يتراجع WordPress ويقول: "حسنًا، لن أستخدم الرمز "$".
  3. تعارض المكونات الإضافية أو السمات : في بعض الأحيان، ينشأ الخطأ بسبب عدم عمل المكونات الإضافية أو السمات بشكل جيد مع الآخرين، وذلك باستخدام الرمز '$' بطريقة تتعارض مع إعدادات WordPress الافتراضية.

العثور على مصدر الخطأ

على الرغم من أن معرفة السبب المحدد للخطأ ليس ضروريًا لإصلاحه، إذا كنت بحاجة إلى معرفة ما يحدث، فلديك خياران لمساعدتك في تعقب مصدر هذا الخطأ بعيد المنال.

يتم تفعيل مهاراتك البوليسية، مسلحة بأداتين قويتين: وحدة تحكم المطور وسجلات تصحيح الأخطاء في WordPress.

وحدة تحكم المطور : يمكنك الوصول إلى هذه الأداة التي لا تقدر بثمن من متصفحك.انقر بزر الماوس الأيمن على صفحة الويب الخاصة بك، وحدد "فحص" أو "فحص العنصر"، ثم انقر فوق علامة التبويب "وحدة التحكم".

يتم تمييز علامة تبويب وحدة التحكم في أدوات مطور Chrome. يعد هذا مفيدًا لتعقب مصدر الخطأ "Uncaught TypeError: $ is not a function" في WordPress.

تعرض وحدة التحكم هذه كنزًا من المعلومات حول ما يحدث خلف الكواليس بموقعك على الويب، بما في ذلك الخطأ بعيد المنال. إنه مثل وجود خريطة ترشدك إلى مكان وجود الكنز (أو المشكلة في هذه الحالة).

سجلات تصحيح أخطاء WordPress : بالنسبة للمشكلات التي تحدث بشكل أعمق في موقع WordPress الخاص بك، يمكن أن يكون تشغيل WP_DEBUG منقذًا للحياة.تقوم هذه الميزة، عند تمكينها، بتسجيل كافة الأخطاء والتحذيرات والإشعارات في ملف debug.log ضمن دليل wp-content. لتنشيطه، ستحتاج إلى تعديل ملف wp-config.php الخاص بك وتعيين WP_DEBUG على القيمة true.

يتم عرض ملف wp-config.php في محرر نصوص مع ضبط وضع wp_debug على true. يمكن أن يساعد هذا في العثور على مصدر الخطأ المطبعي الذي لم يتم اكتشافه وهو ليس خطأ وظيفي في WordPress.

فكر في الأمر على أنه إعداد كاميرات مراقبة في جميع أنحاء موقعك؛ لا شيء ينزلق دون أن يتم تسجيله.

كيفية إصلاح خطأ "Uncaught TypeError: $ ليس دالة" في WordPress

بغض النظر عن السبب المحدد للخطأ، هنا حيث يلتقي المطاط بالطريق. إصلاح الخطأ "Uncaught TypeError: $ is not a function" يتعلق بالعثور على المفتاح الصحيح لتشغيل السيارة، وهناك استراتيجيتان مباشرتان للتنقل حول هذه العقبة دون تعديل وضع "noConflict".

1. اختر "jQuery" بدلاً من "$"

عندما تتعثر نصوصك البرمجية على الرمز '$' وتتسبب في حدوث خطأ، فإن أحد الإصلاحات المباشرة هو استبدال كل مثيل لـ '$' بـ "jQuery" في التعليمات البرمجية الخاصة بك. للحصول على القليل من السياق، إليك كيفية ظهور مقتطف jQuery القياسي باستخدام '$':

 $(وظيفة() {
  // ينتظر الكود الخاص بك بفارغ الصبر هنا ليتم تشغيله بمجرد تحميل DOM بالكامل
});

في مواجهة الخطأ بشكل مباشر، الحل البسيط والفعال هو استبدال "$" بـ "jQuery". ومن ثم، فإن المقتطف المعدل سيكون:

 مسج (وظيفة () {
  // يوريكا! يعمل الكود بسلاسة دون التسبب في أي أخطاء.
});

بالنسبة لأولئك الذين يفضلون أسلوبًا أكثر دقة، فإن تغليف التعليمات البرمجية الخاصة بك في تعبير دالة يتم استدعاؤه على الفور (IIFE) والذي يمر عبر الرمز '$' يمكن أن يغير قواعد اللعبة. تتيح لك هذه التقنية استخدام '$' بأمان داخل الوظيفة دون استدعاء الخطأ المروع:

 مسج(وظيفة($) {
    // داخل هذا الغلاف السحري، "$" هو كل ما يمكنك التحكم فيه.
    console.log($('.القائمة الأساسية'));
});

بعد تنفيذ هذه التعديلات، استخدم أدوات مطور المتصفح الخاص بك أو قم بإلقاء نظرة خاطفة على سجل تصحيح WordPress للتحقق من اختفاء الخطأ "Uncaught TypeError: $ is not a function". إذا استمر الخطأ، فكر في إعادة تعيين "jQuery" إلى اسم مستعار مختلف لتجنب المزيد من التعقيدات.

2. صياغة اسم مستعار مخصص لـ jQuery

نظرًا لأن '$' يعمل كاختصار افتراضي لـ jQuery، فقد يتطلب وضع "noConflict" الخاص بـ WordPress اسمًا مستعارًا بديلاً لتجنب تعارضات المكتبة. هذا الأسلوب واضح ومباشر بشكل مدهش، حيث يسمح لك بتعيين رمز جديد باستخدام سطر واحد فقط من التعليمات البرمجية:

 var $j = jQuery;

يقوم هذا المقتطف بتعيين "$j" كاسم مستعار جديد لـ jQuery، على الرغم من أنه لديك الحرية في اختيار أي رمز يناسبك. هذه الطريقة جذابة بشكل خاص للمطورين الذين يجدون أن كتابة "jQuery" بشكل متكرر مرهقة بعض الشيء.

تجدر الإشارة إلى أنه حتى بعد إعداد اسم مستعار جديد، يظل خيار استخدام "jQuery" مطروحًا على الطاولة.

قم بتغليفه

من خلال تبني أي من هاتين الطريقتين، يمكنك تجنب الخطأ "Uncaught TypeError: $ is not a function" والتأكد من تشغيل البرامج النصية jQuery بسلاسة داخل WordPress.

سواء اخترت استبدال '$' بـ "jQuery" مباشرةً أو إنشاء اسم مستعار مخصص، فإن كلا المسارين يؤديان إلى تعايش jQuery المتناغم مع البرامج النصية الأخرى في وضع "noConflict" الخاص بـ WordPress. تذكر أن مفتاح موقع الويب السلس يكمن في فهم أطره الأساسية والتكيف معها.