آموزش حل مشکل کار نکردن کدهای جی کوئری در وردپرس
آموزش حل مشکل کار نکردن کدهای جی کوئری در وردپرس
در بیشتر مواقع مشکلی که در کار نکردن کدهای jquery وردپرس ایجاد می شود می تواند به دلیل تداخل کتابخانههای جی کوئری باشد. به این صورت که وقتی طراح قالب وردپرس شما یک کتابخانه جی کوئری را در قالب فراخوانی میکند و شما حین استفاده از این قالب میاین و اقدام به نصب یک افزونه میکنید که از کتابخانههای جیکوئری در اون استفاده شده، چون این افزونه هم برای کارکرد خودش به کتابخانه جی کوئری نیاز داره یک بار دیگه این کتابخانه جی کوئری فراخوانی شده و همین موضوع باعث میشه تا همزمان دو کتابخانه در سایت فراخوانی شوند که باعث اختلال در عملکرد افکت ها و افزونهها میشن که در نهایت بر روی کل سایت شما تاثیر خواهد گذاشت.
در حالت عادی برای استفاده از کتابخانههای جی کوئری طراحان میان و از کدهایی مثل نمونه زیر در قالب وردپرس استفاده میکنند که میتونید چنین کدهایی را در فایلهای قالب خودتون پیدا کنید.
1
|
<script src=“https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js”>
|
اما اگر تداخلی در کتابخانههای جی کوئری شما به وجود بیاد با بررسی سورس صفحات خودتون خواهید دید که این کدها به شکل زیر در صفحات تبدیل شدند.
1
|
<script type=“text/javascript” src=“https://site.com/wp-includes/js/jquery/jquery.js”>
|
درست در همینجاست که مشکل تداخل در جی کوئری وردپرس به وجود میاد و همونطور که در حالت تئوری این ماجرا مشخصه برای اینکه مشکل را برطرف کنیم کافیه تا به وردپرس بفهمونیم که این دو کتابخانه تکراری هستند و تنها باید از یکی از این کتابخانهها استفاده کنه. بنابراین وارد هاست خودتون شده و روی گزینه File Manager انتخاب کنید تا به مسیر فایل منیجر در هاست خودتون وارد شوید.
سپس به مسیر /public_html/wp-content/themes/ وارد شده و سپس پوشه قالبی که روی سایت فعال هست را انتخاب کرده و وارد این پوشه شوید. در این پوشه حالا به دنبال فایلی با نام functions.php بگردید و سپس برای ویرایش فایل در هاست سی پنل روی اون راست کلیک کرده و گزینه Edit را انتخاب کنید. بعد از اینکه وارد صفحه ویرایش فایل شدید کد زیر را در مکان مناسبی از این فایل قرار بدین.
1
2
3
4
5
6
7
|
if (!is_admin()) {
function site_init()
{
wp_deregister_script(‘jquery’);
}
add_action(‘init’, ‘site_init’);
}
|
اگر مشکلتون برطرف نشد میتونید کد بالا را از فایل حذف کرده و با کد زیر جایگزین کنید تا کتابخانه جیکوئری پیشفرض خود وردپرس را غیرفعال کنید.
1
2
3
4
|
function my_func_docs(){
wp_deregister_script(‘jquery’)
}
add_action(‘wp_enqueue_scripts’,‘my_func_docs’);
|
با اضافه کردن کد بالا کتابخانهای که وردپرس به صورت پیشفرض از اون استفاده میکنه غیرفعال شده و از کتابخانهای که در قالب و یا افزونه وجود داره استفاده خواهد شد و دیگه تداخلی در کدهای شما به وجود نخواهد آمد.