💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ mohsen tv
درباره nonce و localaize
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۳۱ خرداد ۱۴۰۳

سلام و عرض ادب 
اگر ما در یک پلاگین تعداد زیادی فرم داشته باشیم باید به تعداد این فرم‌ها  nonce و localaize را ایجاد کنیم؟

درود بر شما

اگر در یک پلاگین تعداد زیادی فرم دارید، نیاز نیست برای هر فرم یک nonce و یک localize جداگانه ایجاد کنید. می‌تونید از یک nonce مشترک برای چندین فرم استفاده کنید، اما باید مطمئن باشید که این nonce به درستی اعتبارسنجی می‌شه و امنیت فرم‌ها حفظ می‌شه. در مورد localize، می‌تونید یک فایل جاوااسکریپت global داشته باشید که همه فرم‌ها ازش استفاده کنن.

محمدرسول اصغری ۳۱ خرداد ۱۴۰۳، ۱۱:۴۷

ممنون از توضیحات خوبتون .فقط یک سوال که ممکن است به تاپیک زیاد مربوط نباشه . اگر ما فایل‌های زیاد js که به عنوان library در قالب استفاده شده باشد را نخواهیم enqueue کنیم و مثل css‌ها که همه را داخل یک فایل  import می‌کردیم ، بخواهیم فقط یک فایل js را enqueue کنیم آیا امکان پذیر است؟

mohsen tv ۳۱ خرداد ۱۴۰۳، ۱۲:۵۰

بله،میتونید. شما می‌تونید تمام فایل‌های جاوااسکریپت خودتون رو در یک فایل قرار بدید و فقط همان یک فایل رو enqueue کنید. برای این کار می‌تونید از ابزارهایی مثل Webpack یا Gulp استفاده کنید.

اگر از Webpack استفاده کنید، میتونید تمام فایل‌های جاوااسکریپت خود را در یک فایل به نام bundle.js قرار بدید کنید. به این شکل :
 

const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
mode: 'production',
};


بعد با این دستور رو بزنید

 

npx webpack --config webpack.config.js



در نهایت، فایل bundle.js خودتون رو توی قالب enqueue کنید
 

function my_theme_enqueue_scripts() {
wp_enqueue_script('my-bundle', get_template_directory_uri() . '/dist/bundle.js', array(), null, true);
}
add_action('wp_enqueue_scripts', 'my_theme_enqueue_scripts');

موفق باشید

 

محمدرسول اصغری ۰۲ تیر ۱۴۰۳، ۰۹:۳۵