بارگذاری شرطی فایلهای جاوااسکریپت در وردپرس (Conditional JavaScript)
با تابع `wp_enqueue_script` درون شرطهایی مانند `is_front_page()` یا شناسه برگه، فایلهای JS را تنها در صفحه هدف لود کنید.
مشخصات فنی و شناسنامه کد (Code Information)
بازبینی: 1405/06/29<?php
/**
* بارگذاری شرطی اسکریپتهای جاوااسکریپت در صفحات نیازمند
*/
function bisco_conditional_enqueue_scripts() {
// بارگذاری کتابخانه اسلایدر فقط در صفحه نخست
if ( is_front_page() ) {
wp_enqueue_script(
'bisco-home-slider',
get_stylesheet_directory_uri() . '/assets/js/slider.js',
array(),
'1.0.0',
true // بارگذاری در فوتر
);
}
// بارگذاری فایل نقشههای تعاملی فقط در برگه نمایندگیها
if ( is_page( 'branches' ) ) {
wp_enqueue_script(
'bisco-map-script',
get_stylesheet_directory_uri() . '/assets/js/leaflet-map.js',
array(),
'1.0.0',
true
);
}
}
add_action( 'wp_enqueue_scripts', 'bisco_conditional_enqueue_scripts' );
کد را کجا قرار دهیم؟ (Placement Guide)
کد را در functions.php قرار داده و پارامتر آخر true را برای بارگذاری در فوتر حفظ کنید.
این کد چگونه کار میکند؟ (How it Works)
هوک wp_enqueue_scripts در زمان تعیین توکن صفحه اجرا شده و فقط در صورت برقراری شرط، اسکریپت را به بخش پایین بدنه (Footer) میفرستد.
چه زمانی از این کد استفاده کنیم؟ (Use Cases)
برای کتابخانههای سنگین JS نظیر Swiper, Chart.js, Leaflet و اسکریپتهای انیمیشن GSAP.
چه زمانی نباید از این کد استفاده کنیم؟ (Anti-patterns)
برای فریمورکهای پایهای که منطق ناوبری منوی موبایل یا تم را در تمام صفحات کنترل میکنند.
پیشنیازهای اجرا
وردپرس ۳.۰ به بالا.
نحوه تست و اطمینان از عملکرد
کنسول مرورگر را در صفحات مختلف بررسی کنید؛ اسلایدر فقط در صفحه اصلی لود میشود و در بلاگ هیچ اثری از آن نیست.
نحوه بازگردانی سریع (Rollback)
کد را حذف یا شرطها را ویرایش کنید.
خطاهای رایج و راهحل رفع
لود کردن اسکریپت در هدر به جای فوتر (همیشه آرگومان آخر wp_enqueue_script را true قرار دهید).
ملاحظات و نکات امنیتی
اطمینان از بارگذاری کدهای معتبر و ممانعت از لود اسکریپتهای ناخواسته.
تاثیر بر سرعت و پرفورمنس
کاهش شدید زمان اجرای Main Thread و بهینهسازی شاخص تعاملی INP (Interaction to Next Paint).