تمرین خوبی است که تمام داده های خود را در رشته های ثابت در فایل های PHP خود قرار دهید. اگر بعداً نیاز به استفاده از برخی داده ها در جاوا اسکریپت دارید، تمرین خوبی است که داده های خود را در HTML خود به عنوان data-* ویژگی های. اما در برخی سناریوهای خاص، شما چاره ای ندارید جز اینکه رشته ها را مستقیماً به کد جاوا اسکریپت خود منتقل کنید.

اگر از یک کتابخانه جاوا اسکریپت استفاده می کنید، و متوجه شده اید که یک شی جاوا اسکریپت را در داخل خود مقداردهی اولیه می کنید. header.php و سپس اختصاص داده ها به ویژگی های آن، سپس این مقاله برای شما مناسب است.

این مقاله به شما آموزش می دهد که چگونه داده های PHP و رشته های استاتیک را به کتابخانه جاوا اسکریپت خود به درستی ارسال کنید.

چرا باید داده ها را به جاوا اسکریپت منتقل کنیم؟

اجازه دهید چند سناریو معمولی برای نیاز به انتقال داده به جاوا اسکریپت را توضیح دهم. به عنوان مثال، گاهی اوقات لازم است این مقادیر را در کد جاوا اسکریپت خود وارد کنیم:

  • آدرس های صفحه اصلی، مدیر، پلاگین، طرح زمینه یا AJAX
  • رشته های قابل ترجمه
  • یک تم یا گزینه وردپرس

روش رایج انتقال داده ها

فرض کنید یک فایل جی کوئری به نام داریم myLibrary.js که در سایت وردپرس خود قرار خواهیم داد:

ما آن را در صف خود قرار می دهیم functions.php با کد زیر:

حال، سؤال این است: چگونه می‌توانیم آن را پر کنیم home و pleaseWaitLabel خواص؟ شما ممکن است به طور غریزی چیزی شبیه به این را در خود اضافه کرده باشید header.php برای به دست آوردن داده های مورد نیاز:

این همانطور که در نظر گرفته شده است کار می کند، اما راه بهتر و کوتاه تری برای انجام این کار وجود دارد.

راه وردپرس

در این بخش، چند روش مختلف برای درک نحوه کارکرد آن در وردپرس را مورد بحث قرار خواهیم داد.

روش قدیمی: از wp_localize_script عملکرد

روش قدیمی انتقال داده به جاوا اسکریپت استفاده از wp_localize_script عملکرد. این تابع قرار است بعد از اینکه با استفاده از یک اسکریپت در صف قرار دهید استفاده شود wp_enqueue_scripts.

بیایید سینتکس این تابع و آرگومان های آن را بررسی کنیم.

  • $handle. دسته به اسکریپت صف داده شده برای اتصال مقادیر به.
  • $objectName. شی جاوا اسکریپت که تمام مقادیر را نگه می دارد $arrayOfValues.
  • $arrayOfValues. یک آرایه انجمنی حاوی نام و مقادیری که باید به اسکریپت ارسال شود.

پس از فراخوانی این تابع، $objectName متغیر در اسکریپت مشخص شده در دسترس خواهد بود.

بیایید مثال قبلی را برای استفاده از روش جدید انتقال داده تنظیم کنیم. ابتدا اسکریپت را در نوبت قرار می دهیم و سپس فراخوانی می کنیم wp_localize_script در ما functions.php فایل:

ما home و pleaseWaitLabel اکنون می توان به مقادیر از طریق کتابخانه جی کوئری ما دسترسی پیدا کرد php_vars متغیر.

از آنجایی که استفاده کردیم wp_localize_script، ما مجبور نخواهیم بود چیزی را در خود اجرا کنیم header.php، و ما می توانیم با خیال راحت محتویات را حذف کنیم <script> برچسب زدن ما همچنین می توانیم ویژگی های اضافی را از اسکریپت جی کوئری خود حذف کنیم. اکنون می توان آن را به این شکل ساده کرد:

راه جدید: از wp_add_inline_script عملکرد

راه جدید و پیشنهادی استفاده از wp_add_inline_script عملکرد. این تابع باید بعد از اینکه با استفاده از یک اسکریپت در صف قرار دادید استفاده شود wp_enqueue_scripts.

بیایید به نحو و آرگومان های این تابع نگاهی بیندازیم.

  • $handle. نام اسکریپتی که باید اسکریپت درون خطی را به آن اضافه کنید.
  • $data. رشته حاوی جاوا اسکریپتی که باید اضافه شود.
  • $position. آیا اسکریپت درون خطی قبل از دسته اضافه شود یا بعد از آن.

بنابراین این تابع یک اسکریپت درون خطی را قبل یا بعد از کد جاوا اسکریپت شما اضافه می کند.

بیایید مثالی را که در بخش قبل با آن مورد بحث قرار دادیم تجدید نظر کنیم wp_add_inline_script نسخه

حالا ما home و pleaseWaitLabel مقادیر را می توان در داخل کتابخانه jQuery ما از طریق php_vars متغیر.

متغیرهای ما در جاوا اسکریپت به صورت در دسترس خواهند بود php_vars.home و php_vars.pleaseWaitLabel، همانطور که در قطعه زیر نشان داده شده است.

بنابراین از این طریق می توانید داده ها و رشته های PHP را به جاوا اسکریپت در وردپرس منتقل کنید.

نتیجه

با استفاده از wp_add_inline_script، کد ما ساده تر است و ما header.php تمیزتر است امیدوارم بتوانید از این تابع در کد خود استفاده کنید و از مزایای آن بهره مند شوید.

این پست با مشارکت‌ها به‌روزرسانی شده است سجال سونی. ساجل متعلق به هند است و دوست دارد زمان خود را صرف ایجاد وب سایت بر اساس چارچوب های منبع باز کند.