خطای “jQuery is not defined” یکی از مشکلات متداول در وردپرس است که ممکن است به دلیل عدم بارگذاری صحیح jQuery یا تعارض با اسکریپتهای دیگر رخ دهد. در ادامه، دلایل و راهحلهای این مشکل را بهصورت دقیق و روان بررسی میکنیم.
خطای “jQuery is not defined” چیست؟
خطای “jQuery is not defined” به این معناست که مرورگر موفق به بارگذاری فایلهای jQuery نشده است یا اینکه نمیداند jQuery چیست. این خطا زمانی رخ میدهد که کدی که به jQuery وابسته است، نمیتواند آن را پیدا کند.
علتهای اصلی این خطا:
- بارگذاری ناموفق فایلهای jQuery:
- فایلهای jQuery به دلایلی مانند مشکلات شبکه، CDN غیرفعال، یا عدم دسترسی به منابع، بارگذاری نمیشوند.
- عدم بارگذاری jQuery پیش از سایر اسکریپتها:
- اگر jQuery قبل از اسکریپتهای وابسته به آن بارگذاری نشود، این خطا ظاهر میشود.
- عدم enqueue صحیح jQuery در وردپرس:
- در وردپرس، عدم استفاده از توابع استاندارد برای بارگذاری jQuery میتواند باعث این خطا شود.
- تعارض در نسخههای jQuery:
- اگر چند نسخه مختلف از jQuery بهطور همزمان بارگذاری شوند، ممکن است jQuery بهدرستی شناسایی نشود.
به زبان ساده: این خطا زمانی رخ میدهد که کدی که از jQuery استفاده میکند، نمیتواند به کتابخانه jQuery دسترسی پیدا کند، زیرا مرورگر نمیداند jQuery چیست یا فایل آن به درستی لود نشده است.
دلایل بروز خطای “jQuery is not defined”
اگر با خطای “jQuery is not defined” مواجه شدهاید، این مشکل نشاندهندهی آن است که وردپرس در بارگذاری صحیح jQuery دچار خطا شده است. با سالها تجربه در کمک به کاربران برای رفع این مشکل، متوجه شدهایم که این خطا معمولاً به دلایل زیر رخ میدهد:
1. قالبها یا افزونههای قدیمی
- مشکل: قالب یا افزونههای قدیمی معمولاً با نسخههای جدید وردپرس یا jQuery سازگاری ندارند.
- زمان بروز: اغلب پس از بهروزرسانی وردپرس یا افزونهها این خطا ظاهر میشود.
- نتیجه: باعث میشود فایلهای جاوا اسکریپت به درستی کار نکنند.
2. بارگذاری نادرست اسکریپتها
- مشکل: کتابخانه jQuery باید قبل از سایر فایلهای جاوا اسکریپت بارگذاری شود.
- پیامد: اگر ترتیب بارگذاری نادرست باشد، اسکریپتهایی که به jQuery وابستهاند، دچار خطا میشوند.
3. تعارض جاوا اسکریپت
- مشکل: استفاده از نسخههای مختلف jQuery یا عدم استفاده از ممکن است باعث تداخل شود.
- نتیجه: خطای “jQuery is not defined” ظاهر میشود.
4. مشکلات CDN
- مشکل: اگر از نسخه میزبانیشده jQuery روی CDN استفاده میکنید، ممکن است به دلایلی مانند فیلترینگ یا قطع دسترسی CDN فایل jQuery بارگذاری نشود.
- پیامد: این مشکل منجر به اختلال در عملکرد وبسایت میشود.
چگونه خطای “jQuery is not defined” را برطرف کنیم؟
خطای “jQuery is not defined” یکی از مشکلات رایج در وردپرس است که معمولاً به دلیل عدم بارگذاری صحیح jQuery یا تعارض در اسکریپتها رخ میدهد. در ادامه، چند روش موثر برای رفع این مشکل به همراه توضیحات ارائه شده است. توصیه میکنیم این روشها را به ترتیب اجرا کنید.
1. بروزرسانی وردپرس، قالبها و افزونهها
یکی از اصلیترین دلایل بروز این خطا، استفاده از نسخههای قدیمی قالب یا افزونهها است که با نسخه جدید وردپرس ناسازگارند.
مراحل بروزرسانی:
- بروزرسانی هسته وردپرس:
- به پیشخوان > بروزرسانیها بروید.
- اگر بروزرسانی موجود است، روی گزینه بروزرسانی به نسخه X.X.X کلیک کنید.
- بروزرسانی افزونهها:
- در بخش بروزرسانیها، تمام افزونهها را انتخاب کنید.
- روی گزینه بروزرسانی افزونهها کلیک کنید.
- بروزرسانی قالبها:
- در لیست بروزرسانیها، قالبهای نصبشده را انتخاب کرده و بروزرسانی کنید.
نکته: قبل از بروزرسانی، از سایت خود یک نسخه پشتیبان تهیه کنید.
2. بررسی بارگذاری صحیح jQuery
برای رفع خطای “jQuery is not defined”، اولین قدم این است که اطمینان حاصل کنید jQuery بهدرستی روی سایت شما بارگذاری شده است. مراحل زیر به شما کمک میکند این موضوع را بررسی و مشکل را شناسایی کنید.
الف) مشاهده سورس صفحه
- نمایش سورس کد صفحه:
- روی هر نقطه از سایت خود کلیک راست کرده و گزینه View Page Source را انتخاب کنید.
- یا از کلیدهای میانبر استفاده کنید:
- ویندوز:
Ctrl + U - مک:
Cmd + Option + U
- ویندوز:
- جستجوی فایل jQuery:
- کلیدهای ترکیبی Ctrl + F (ویندوز) یا Cmd + F (مک) را فشار دهید تا نوار جستجو باز شود.
- عبارت
jquery.min.jsرا جستجو کنید.
- نتایج:
- اگر فایل jQuery در سورس کد نمایش داده شود، به این معناست که jQuery بارگذاری شده است.
- اگر چنین فایلی یافت نشد، به احتمال زیاد jQuery به درستی enqueue نشده است.
ب) استفاده از ابزار Inspect مرورگر
- باز کردن ابزار Inspect:
- ویندوز: کلید F12
- مک: کلیدهای Options + Cmd + I
- رفتن به تب Network:
- در ابزار Inspect، به تب Network بروید.
- صفحه را رفرش کنید.
- فیلتر کردن فعالیت شبکه:
- در نوار جستجوی تب Network، عبارت jquery را وارد کنید.
- اگر jQuery بارگذاری شده باشد، باید آن را در لیست فایلهای لودشده مشاهده کنید.
ج) اگر jQuery بارگذاری نشده باشد
در صورتی که فایل jQuery در هیچیک از روشهای بالا یافت نشد:
- بررسی کنید که jQuery در وردپرس enqueue شده است یا خیر. برای این کار میتوانید کد زیر را به فایل
functions.phpقالب اضافه کنید:
|
1 2 3 4 |
function load_jquery_properly() { wp_enqueue_script('jquery'); } add_action('wp_enqueue_scripts', 'load_jquery_properly'); |
3. افزودن Fallback برای jQuery
گاهی اوقات ممکن است jQuery از یک CDN بارگذاری شود که دچار مشکلات اتصال است. این موضوع میتواند باعث بروز خطای “jQuery is not defined” شود. برای رفع این مشکل، میتوانید از Fallback برای jQuery استفاده کنید. این روش تضمین میکند که jQuery حتی در صورت بروز مشکل در CDN، به درستی بارگذاری میشود.
نحوه اضافه کردن Fallback به سایت وردپرس
روش پیشنهادی: استفاده از افزونه WPCode
بهجای ویرایش مستقیم فایلهای قالب، توصیه میکنیم از افزونه WPCode استفاده کنید. این روش ایمنتر است و با بهروزرسانی قالب، تغییرات شما از بین نمیرود.
مراحل نصب و افزودن Fallback با WPCode
- نصب و فعالسازی WPCode:
- افزونه WPCode (یا نسخه رایگان آن WPCode Lite) را نصب و فعال کنید.
- برای جزئیات بیشتر، میتوانید آموزش نصب افزونه وردپرس را مطالعه کنید.
- ایجاد Snippet جدید:
- به مسیر Code Snippets > + Add Snippet بروید.
- در بخش Add Your Custom Code (New Snippet) روی دکمه Use Snippet کلیک کنید.
- ویرایش Snippet:
- یک نام برای Snippet خود انتخاب کنید، مثلاً: jQuery Fallback.
- نوع کد را روی HTML Snippet تنظیم کنید.
- اضافه کردن کد Fallback: کد زیر را در ویرایشگر کپی کنید:
1234<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script><script>window.jQuery || document.write('<script src="/wp-includes/js/jquery/jquery.js"><\/script>');</script>توضیح کد:
- ابتدا jQuery از CDN گوگل بارگذاری میشود.
- اگر بارگذاری موفق نبود، jQuery از نسخه محلی موجود در وردپرس بارگذاری میشود.
- تنظیم مکان بارگذاری:
- به بخش Insertion بروید.
- گزینه Site Wide Header را انتخاب کنید تا کد در تمام صفحات سایت بارگذاری شود.
- ذخیره و فعالسازی:
- روی دکمه Save Snippet کلیک کنید.
- با جابهجایی سوئیچ، Snippet را به حالت Active درآورید.
روش جایگزین: ویرایش مستقیم فایل functions.php
اگر تمایلی به استفاده از افزونه ندارید، میتوانید کد زیر را به فایل functions.php قالب خود اضافه کنید:
|
1 2 3 4 5 6 7 8 |
function add_jquery_fallback() { echo ' <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> window.jQuery || document.write(\'<script src="' . includes_url('/js/jquery/jquery.js') . '"><\/script>\'); </script>'; } add_action('wp_head', 'add_jquery_fallback'); |
توجه: این روش کمتر توصیه میشود زیرا با بهروزرسانی قالب ممکن است تغییرات شما حذف شود.
نتیجه: با استفاده از Fallback، jQuery همیشه بهدرستی بارگذاری خواهد شد، حتی اگر CDN دچار مشکل شود. این کار خطای “jQuery is not defined” را برطرف کرده و عملکرد سایت را بهبود میبخشد.
4. رفع ترتیب بارگذاری اسکریپتها (پیشرفته)
یکی از دلایل رایج خطای “jQuery is not defined”، بارگذاری jQuery بعد از اسکریپتهایی است که به آن وابسته هستند. این مشکل میتواند با تنظیم صحیح ترتیب بارگذاری اسکریپتها حل شود. در ادامه روشهای دقیق برای رفع این مشکل ارائه میشود.
نحوه رفع ترتیب بارگذاری با WPCode
1. نصب و فعالسازی WPCode
- افزونه WPCode یا نسخه رایگان آن به نام WPCode Lite را نصب و فعال کنید.
- این افزونه امکان افزودن کدهای سفارشی به سایت را بدون خطر تغییر مستقیم فایلها فراهم میکند.
2. افزودن اسنیپت جدید
- به مسیر Code Snippets > + Add Snippet بروید.
- روی دکمه Use Snippet در بخش Add Your Custom Code (New Snippet) کلیک کنید.
3. ایجاد Snippet با کد PHP
- یک نام معنادار برای Snippet انتخاب کنید، مثلاً: Fix Script Loading Order.
- نوع کد را روی PHP snippet تنظیم کنید.
4. اضافه کردن کد برای تنظیم ترتیب بارگذاری
کد زیر را در ویرایشگر کپی کنید:
|
1 2 3 4 5 6 7 8 9 10 |
function fix_script_loading_order() { wp_enqueue_script( 'your-script-handle', // یک نام معنادار برای اسکریپت get_template_directory_uri() . '/js/your-script.js', // مسیر فایل اسکریپت array( 'jquery' ), // وابستگی به jQuery null, // نسخه فایل (میتوانید null بگذارید) true // بارگذاری در فوتر ); } add_action('wp_enqueue_scripts', 'fix_script_loading_order'); |
توضیحات کد:
your-script-handle: نام معناداری برای اسکریپت خود انتخاب کنید./js/your-script.js: مسیر فایل اسکریپت در پوشه js قالب.array('jquery'): این بخش تضمین میکند که jQuery ابتدا بارگذاری شود.true: تعیین میکند که اسکریپت در فوتر بارگذاری شود (برای بهبود سرعت صفحه).
5. تنظیم مکان بارگذاری کد
- به بخش Insertion بروید.
- گزینه Site Wide Footer را انتخاب کنید تا کد در فوتر سایت بارگذاری شود.
6. ذخیره و فعالسازی Snippet
- روی دکمه Save Snippet کلیک کنید.
- اسنیپت را با جابهجایی سوئیچ به حالت Active فعال کنید.
5. ویرایش فایل wp-config.php برای رفع مشکلات بارگذاری jQuery
1. دسترسی به فایل wp-config.php
- از طریق یک کلاینت FTP (مثل FileZilla) یا مدیر فایل هاستینگ به فایل
wp-config.phpدسترسی پیدا کنید. - این فایل معمولاً در مسیر public_html قرار دارد.
2. اضافه کردن کد برای کنترل بارگذاری اسکریپتها
کد زیر را قبل از خط “That’s all, stop editing! Happy blogging.” اضافه کنید:
|
1 2 3 4 |
/** Absolute path to the WordPress directory. */ if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); define('CONCATENATE_SCRIPTS', false); |
توضیحات کد:
CONCATENATE_SCRIPTS: این تنظیم ترکیب اسکریپتها را غیرفعال میکند و وردپرس را مجبور میکند هر اسکریپت را جداگانه بارگذاری کند.
3. ذخیره تغییرات
- تغییرات را ذخیره کنید و سایت را رفرش کنید تا مطمئن شوید مشکل رفع شده است.
6. استفاده از پشتیبانی حرفهای
اگر هیچیک از روشهای بالا جواب نداد یا نیاز به راهحلی سریعتر دارید:
- از خدمات پشتیبانی حرفهای وردپرس استفاده کنید.
- تیمهای حرفهای میتوانند مشکل شما را به سرعت و بدون نیاز به قرارداد حل کنند.
- این خدمات میتوانند به کاهش زمان خاموشی سایت شما کمک کنند.
نتیجه
با استفاده از تنظیم صحیح ترتیب بارگذاری اسکریپتها، خطای “jQuery is not defined” بهطور کامل رفع میشود. اگر همچنان مشکل ادامه داشت، از ویرایش wp-config.php یا کمک از متخصصان وب آنجل استفاده کنید.
سؤالات متداول درباره خطاهای jQuery و استفاده از آن
1. چگونه خطای “jQuery is not defined” را حل کنیم؟
برای رفع این خطا، مراحل زیر را دنبال کنید:
- اطمینان حاصل کنید که وردپرس، قالبها و افزونهها بهروز هستند.
- بررسی کنید که jQuery بهدرستی بارگذاری شده است:
- از سورس صفحه یا ابزارهای توسعهدهنده مرورگر برای بررسی بارگذاری استفاده کنید.
- اضافه کردن یک Fallback برای jQuery:
- در صورت مشکل در CDN، نسخه محلی بارگذاری شود.
- تنظیم ترتیب بارگذاری اسکریپتها با استفاده از تابع
enqueue:
1wp_enqueue_script('your-script', get_template_directory_uri() . '/js/your-script.js', array('jquery'), null, true);
2. چرا jQuery تعریف نشده است؟
دلایل ممکن:
- بارگذاری نشدن jQuery: فایل jQuery ممکن است به دلیل مشکل در CDN یا مسیریابی لود نشده باشد.
- ترتیب نادرست بارگذاری: jQuery باید قبل از اسکریپتهای وابسته بارگذاری شود.
- تعارض بین اسکریپتها: استفاده از نسخههای مختلف jQuery یا عدم استفاده از حالت
noConflict. - مشکل در CDN: شبکه توزیع محتوا ممکن است دچار مشکل دسترسی شده باشد.
3. چگونه خطای “is not defined” را رفع کنیم؟
برای رفع این خطا:
- بررسی کنید که فایل یا متغیر مورد نیاز به درستی تعریف شده باشد.
- اطمینان حاصل کنید که فایلها به ترتیب مناسب بارگذاری میشوند.
- از ابزارهای خطایابی مرورگر (مانند تب Console) استفاده کنید تا محل دقیق مشکل را شناسایی کنید.
4. چگونه jQuery را در جاوا اسکریپت تعریف کنیم؟
- مطمئن شوید که فایل jQuery بارگذاری شده است:
1<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> - استفاده از کد jQuery:
123$(document).ready(function() {$('p').text('این یک متن جدید است!');});
5. $() در جاوا اسکریپت چیست؟
$() در jQuery برای انتخاب عناصر HTML و اجرای توابع استفاده میشود. این نماد مشابه document.querySelector() در جاوا اسکریپت عمل میکند.
مثال:
|
1 2 3 |
$(document).ready(function() { $('p').css('color', 'blue'); }); |
این کد:
- تمام تگهای
<p>را انتخاب میکند. - رنگ متن آنها را به آبی تغییر میدهد.
خدمات پشتیبانی و سئوی حرفهای سایت با وب آنجل
با سپردن خدمات پشتیبانی سایت خود به تیم متخصصی همانند وب آنجل، با سابقه موفق بیش از یک دهه در دنیای دیـجیتال مارکتینگ، خیالتان از بهترین بودن سایت کسب و کار خود راحت باشد.












