كيفية منع wp_localize_script من إضافة رابط AJAX للمصفوفة
تعتبر إضافة البيانات عبر wp_localize_script
في ووردبريس وسيلة فعالة لنقل المعلومات بين PHP وJavaScript. لكن قد يواجه المطورون بعض التحديات عند التعامل مع العناوين متعددة اللغات، خصوصًا عند استخدام أدوات مثل GTranslate. سنستعرض في هذا المقال كيف يمكن منع wp_localize_script
من إضافة لغة معينة إلى رابط AJAX، مما يضمن أن يظل هذا الرابط ثابتًا عبر اللغات.
ما هي المشكلة؟
عند تفعيل خاصية تعدد اللغات لموقع ووردبريس الخاص بك، يمكن أن يحدث أن يتم إضافة شريحة اللغة إلى روابط AJAX. فمثلًا، إذا كان لديك رابط AJAX في النسخة الإنجليزية من موقعك، سيكون مشابهًا لـ:
https://www.example.com/blogs/wp-admin/admin-ajax.php
لكن عند استخدام النسخة الصينية، يجب أن يبقى الرابط على حاله بدون إضافة /zh-CN/
، ليبدو كالتالي:
https://www.example.com/blogs/wp-admin/admin-ajax.php
إضافة الشريحة اللغوية إلى رابط AJAX قد تتسبب في عدم عمل الطلبات بشكل صحيح، مما يؤثر على تجربة المستخدم.
الحلول الممكنة
استخدام admin_url
بشكل صحيح
بدأت بتسجيل الرابط باستخدام admin_url
للتأكد من أنه يتم إنشاؤه بشكل صحيح:
error_log('ajax url via admin_url: ' . admin_url( 'admin-ajax.php' ));
يبدو أن الرابط يتم تشكيله بشكل صحيح في PHP، ولكن عند الوصول إلى JavaScript، يتغير الرابط.
خطوة الحل الجذري
من المهم أن نفهم أن wp_localize_script
يجب أن يتم استدعاؤه في الوقت المناسب، وأن تتم إدارة التحويلات اللغوية بشكل فعال.
إذا كنت تلاحظ أن wp_localize_script
يقوم بإضافة شريحة اللغة تلقائيًا على النسخة الصينية، يمكنك استخدام دالة لجعل الرابط دائمًا حلًا ثابتًا. جرب استخدام site_url()
على سبيل المثال:
wp_localize_script($this->plugin_name, 'MyObj', array(
'ajax_url' => site_url('wp-admin/admin-ajax.php'),
));
لكن، تذكر أنه لا يزال يجب أن نختبر هذه الحالة في جميع اللغات المتاحة.
التعامل مع الرمز في JavaScript
بعد تعيين الرابط في JavaScript، تحقق من الروابط المتحصل عليها:
console.log("Ajax url: ", MyObj.ajax_url);
إذا كان الرابط قد تم تغييره، قد يكون هناك تأثير من إضافات متعددة تترجم اللغة، ولذلك تأكد من ضبط الإعدادات في الإضافات المستخدمة.
الأساليب البديلة
استكشاف GTranslate
لمنع wp_localize_script
من إضافة لغة في الرابط يمكن أن يكون تعيين إعدادات GTranslate أو أي إضافة مشابهة التي تستخدمها للتعامل مع اللغات مفيدًا. راجع الوثائق الخاصة بتلك الإضافات، فقد تحتوي على خيارات للحد من هذه السلوكيات.
ضبط إعدادات ووردبريس
بشكل عام، تأكد من ضبط إعدادات ووردبريس بشكل صحيح خصوصًا فيما يتعلق بتعدد اللغات. الذهاب إلى قسم الإعدادات، والتحقق من إعدادات الروابط الدائمة قد يساعد في الحد من المسائل المتعلقة بالرابط.
الخلاصة
إدارة الروابط في ووردبريس هو جزء أساسي من تطوير الإضافات، وخاصة عند استخدام تعدد اللغات. من خلال فهم كيفية عمل wp_localize_script
والإعدادات الملائمة في GTranslate وأدوات مشابهة، يمكنك ضمان أن تظل روابط AJAX ثابتة وغير متأثرة بتنقلات اللغة.
تذكر دائمًا اختبار جميع السيناريوهات الممكنة على مواقعك ولغاتك المختلفة لضمان تجربة مستخدم سلسة.