راهنمای کامل قرار دادن کد جاوا اسکریپت در وردپرس
گاهی اوقات نیاز است که کد جاوا اسکریپت به وردپرس خود اضافه کنید. برای قرار دادن کد جاوا اسکریپت در وردپرس روشهای مختلف و متنوعی وجود دارد. میتوانید این کد را از طریق فایل functions.php قالب فعال خود اضافه کنید، میتوانید با کمک افزونههایی مانند wpcode اینکار را انجام دهید و یا در صورتیکه قالب شما تنظیمی برای اضافه کردن کد جاوا اسکریپت به وبسایت در نظر گرفته است میتوانید اینکار را از طریق تنظیمات قالب خود انجام دهید.
اگرچه که راحتترین روش برای قرار دادن کد جاوا اسکریپت در وردپرس، استفاده از تگ <script> به صورت مستقیم در header.php و footer.php فایل قالب است، اما نبایستی هیچگاه اینکار را انجام دهید چرا که با بهروزرسانی قالب تمامی این تغییرات از بین خواهد رفت و علاوه بر این، لود فایلهای جاوا اسکریپت به ترتیبی صورت میگیرد که بایستی این ترتیب رعایت شود.
بنابراین هیچگاه کد جاوا اسکریپت را مستقیما به فایل header.php یا footer.php اضافه نکنید.
در ادامه روشهای استاندارد قرار دادن کد جاوا اسکریپت در وردپرس را به صورت کامل توضیح خواهیم داد.
استفاده از افزونه برای قرار دادن کد جاوا اسکریپت در وردپرس
زمانی برای قرار دادن کد جاوا اسکریپت در وردپرس سراغ نصب و استفاده از افزونه میرویم که:
- نخواهید به صورت مستقیم فایل های قالب وردپرس را ویرایش کنید.
- بخواهید کد جاوا اسکریپت مدنظر شما مستقل از قالب باشد؛ یعنی اینکه حتی پس از استفاده از قالبی جدید آن را داشته باشید.
افزونه برای ویرایش فایل header.php و footer.php
اولین گزینه برای قرار دادن کد جاوا اسکریپت در وردپرس استفاده از یک افزونه است که به شما اجازه میدهد تا فایل های فوتر و هدر قالب را ویرایش کنید. اگر میخواهید اسکریپتهایی اضافه کنید که پیش از محتوای صفحه بایستی لود شوند مانند کد آمارگیر گوگل و اسکریپتهای ردگیری، بایستی بخش هدر قالب را ویرایش کنید در عوض اسکریپتهایی که پس از محتوا بارگیری میشوند به بخش فوتر قالب منتقل میشوند. معمولا، وقتیکه اسکریپت مدنظر شما قرار است که یک المان موجود در صفحه را دستکاری کند، مانند اسکریپت گالری تصویر، بایستی در بخش فوتر قالب تزریق شود.
افزونه Insert Header and Footers افزونهی خوبی است که به شما اجازه میدهد تا بخشهای فوتر و هدر قالب را ویرایش کنید. این افزونه رابط کاربری ساده ای با تنها دو ناحیه متنی دارد – یکی برای بخش اسکریپتهای هدر و دیگری برای اسکریپتهای فوتر. این افزونه اسکریپتهایی را به action hookهای wp_head یا wp_footer اضافه میکند.
بایستی اسکریپت های خود را بین دو تگ <script> و <script/> قرار دهید. جدا از این مساله، می توانید از این افزونه برای افزودن CSS سفارشی به بخش هدر قالب خود با استفاده از تگ <style> و <style/> استفاده کنید.
افزونه برای اضافه کردن جاوا اسکریپت سفارشی
دیگر گزینه قرار دادن کد جاوا اسکریپت در وردپرس، اضافه کردن اسکریپت با کمک افزونههایی مانند Custom JS در مخزن وردپرس است. این افزونهها مشابه افزونههای ویرایش هدر و فوتر هستند و اغلب آنها نیز از اکشن هوکهای wp_head و wp_footer استفاده میکنند اما تنظیمات بیشتری در اختیار شما قرار میدهند.
برای مثال، افزونه Simple Custom CSS and JS به شما این اجازه را میدهد تا پیوند یکتایی برای فایلهای جاوا اسکریپت خود تعیین کنید و آنها را در پوشه wp-content ذخیره کنید و اسکریپتها را به عنوان یک نوع پست سفارشی مدیریت کنید.
اگر میخواهید چند فایل سفارشی جاوا اسکریپت را به وردپرس خود اضافه کنید و آنها را سازماندهی کنید، این نوع از افزونهها بسیار به کارتان میآید.
افزونه برای قرار دادن کد جاوا اسکریپت در وردپرس به یک هدف مشخص
اگر میخواهید یک اسکریپت به خصوص و مشخص را به وبسایت خود اضافه کنید و در صورتیکه چنین افزونهای برای آن در مخزن وردپرس منتشر شده باشد میتوانید از این نوع افزونه استفاده کنید. مزیت استفاده از این نوع افزونهها، وجود تنظیمات بیشتر برای اسکریپت مخصوص شماست.
برای مثال، افزونه محبوب GA Google Analytics به شما اجازه میدهد تا گوگل آنالیتیک را به وبسایت از طریق ناحیه مدیریت وردپرس بیافزایید. این افزونه تنظیمات زیادی دارد که مختص اسکریپت گوگل آنالیتیک میباشد، مثلا مخفی سازی IP و …
ویرایش فایل functions.php قالب فرزند
اگر نخواهید از افزونه برای قرار دادن کد جاوا اسکریپت در وردپرس استفاده کنید، چه روش دیگری وجود دارد؟
می توانید از توابع پیشفرض و اکشنهوک برای قرار دادن کد جاوا اسکریپت در وردپرس استفاده کنید. در این مورد، بایستی فایل functions.php را ویرایش کرده و اسکریپت را به صورت دستی بر روی سرور خود آپلود کنید.
توصیه می شود که یک قالب فرزند ایجاد کنید تا بهروزرسانی قالب والد باعث از بین رفتن کدهای سفارشی شما نشود. میتوانید اسکریپتهای سفارشی خود را به پوشه ریشه قالب فرزند خود اضافه کنید یا اگر بیش از یک اسکریپت دارید، می توانید پوشه اسکریپت برای آنها بسازید.
بایستی با کمک PHP اسکریپتهای خود را در صف و در فایل functions.php قالب فرزند قرار دهید. میتوانید این فایل را در ویرایشگر کد خود ویرایش کرده و نسخه بهروزرسانی شده را به صورت دستی بر روی سرور خود آپلود کنید یا آن را از طریق گزینه ویرایش پوسته در منوی نمایش بخش مدیریت وردپرس خود ویرایش کنید.
enqueue کردن اسکریپت های سفارشی با تابع ()wp_enqueue_script
برای قرار دادن کد جاوا اسکریپت در وردپرس، به توصیه وردپرس بایستی از تابع ()wp_enqueue_script برای اضافه کردن اسکریپت به وردپرس استفاده کنید. این تابع اسکریپتها را در یک سلسله مراتب منظم اجرا میکند. شما با کمک این تابع، اسکریپت مدنظر خود را به ترتیب درستی وارد صف خواهید کرد تا با دیگر اسکریپتهای موجود در هسته وردپرس و افزونههای در حال اجرا بر روی وبسایت تداخل نداشته باشد.
با ()wp_enqueue_script، میتوانید کد سفارشی جاوا اسکریپت خود را به فوتر و هدر قالب اضافه کنید. به صورت پیش فرض، این تابع اسکریپتها را که در بخش <head> صفحه قرا میدهد مگر اینکه هنگام تعریف تابع از وردپرس خواسته باشید که اسکریپت در فوتر لود شود.
اگر میخواهید اسکریپت خود را به هدر اضافه کنید، تنها نیاز است که تابع سفارشی ساخته و به اسکریپت مد نظر خود اشاره کنید. به طوری که در زیر میبینید، از تابع وردپرس ()get_stylesheet_directory_uri برای دریافت آدرس پوشه پوسته فرزند استفاده شده است. و تابع ()add_action تابع سفارشی ()wproket_enqueue_custom_js را به اکشن هوک wp_enqueue_scripts اضافه میکند که به شما اجازه میدهد اسکریپت سفارشی را وارد صف کنید.
/* Custom script with no dependencies, enqueued in the header */
add_action('wp_enqueue_scripts', 'wproket_enqueue_custom_js');
function wproket_enqueue_custom_js() {
wp_enqueue_script('custom', get_stylesheet_directory_uri().'/scripts/custom.js');
}
جدای قرار دادن اسکریپتها در صف، می توانید از تابع ()wp_enqueue_script برای اضافه کردن کد سفارشی جاوا اسکریپت به بخش فوتر استفاده کنید. در این حالت، نیاز به تعریف تمام پارامترهای اختیاری دارید، به ترتیب:
/* Custom script with no dependencies, enqueued in the footer */
add_action('wp_enqueue_scripts', 'wproket_enqueue_custom_js');
function wproket_enqueue_custom_js() {
wp_enqueue_script('custom', get_stylesheet_directory_uri().'/scripts/custom.js', array(), false, true);
}
اگر اسکریپت شما وابسته به اسکریپتهای دیگر است، بایستی آنها را به پارامتر ()array از تابع ()wp_enqueue_script اضافه کنید. چندین کتابخانه و اسکریپت محبوب مانند jQuery وجود دارد که به صورت پیشفرض توسط هسته وردپرس لود میشوند و نیازی به لود دوباره آنها نیست.
/* Custom script with jQuery as a dependency, enqueued in the footer */
add_action('wp_enqueue_scripts', 'wproket_enqueue_custom_js');
function wproket_enqueue_custom_js() {
wp_enqueue_script('custom', get_stylesheet_directory_uri().'/scripts/custom.js', array('jquery'), false, true);
}
اگر نیاز به اسکریپتی دارید که توسط وردپرس ثبت نشده است، بایستی آن را ثبت کرده و با تابع ()wp_enqueue_script دیگری آن را وارد صف کنید.
اگر میخواهید اسکریپت خود را در بجای لود در فرانتاند وبسایت خود در ناحیه مدیریت وبسایت اجرا کنید بایستی به جای استفاده از تابع wp_enqueue_scripts از اکشن هوک admin_enqueue_scripts در تابع add_action استفاده کنید. برای صفحه لاگین بایستی از اکشن هوک login_enqueue_scripts استفاده کنید که اسکریپتها را تنها برای صفحه لاگین وارد صف میکند.
اجرای اسکریپت های inline با wp_head یا wp_footer
گاهی در مساله قرار دادن کد جاوا اسکریپت در وردپرس، به دنبال اضافه کردن یک تکه کد کوتاه هستید.
اگرچه که وردپرس استفاده از تابع wp_enqueue_script را برای لود اسکریپت پیشنهاد میکند، اما میتوانید از اسکریپتهای inline برای وبسایتتان با اکشن هوکهای wp_head و wp_footer استفاده کنید. بجای وارد صف کردن اسکریپتهای سفارشی خود، این هوکها تنها آنها را وارد بخش فوتر و هدر میکنند. بنابراین بایستی تنها از این تکنیک برای اضافه کردن اسکریپتهای inline و نه فایلهای js استفاده کنید.
کد زیر نشان میدهد که چگونه میتوانید از اکشن هوک wp_head برای اجرای اسکریپت inline در بخش هدر قالب استفاده کنیم:
<?php
/* Inline script printed out in the header */
add_action('wp_head', 'wproket_add_script_wp_head');
function wproket_add_script_wp_head() { ?>
<script> console.log("I'm an inline script tag added to the header."); </script>
<?php }
و در کد زیر میبینید که چگونه میتوانید از اکشن هوک wp_footer برای اجرای اسکریپت inline در بخش فوتر استفاده کنید:
<?php
/* Inline script printed out in the footer */
add_action('wp_footer', 'wproket_add_script_wp_footer');
function wproket_add_script_wp_footer() { ?>
<script> console.log("I'm an inline script tag added to the footer."); </script>
<?php }
wp_head و wp_footer تنها در بخش فرانت اند وبسایت تان در دسترس هستند و اسکریپت اضافه شده با این هوکها در ناحیه مدیریت و صفحه لاگین بارگذاری نمیشوند. برای افزودن اسکریپتهای inline سفارشی به ناحیه مدیریت خود بایستی از admin_head و admin_footer در تابع ()add_action استفاده کنید. و اگر میخواهید اسکریپتها را در صفحه لاگین اجرا کنید بایستی از اکشن هوکهای login_head و login_footer استفاده کنید.
به خاطر داشته باشید که برای قرار دادن کد جاوا اسکریپت در وردپرس، افزونه های اشاره شده در این پست از wp_head و wp_footer نه تنها برای اسکریپت های inline بلکه همچنین برای فایل های بیرونی js استفاده میشوند. امنترین و بهترین روش استفاده از تابع ()wp_enqueue_script برای لود فایل جاوا اسکریپت در وردپرس محسوب میشود..
5 / 5. 1
1 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
عالی بود. ممنونم.