برای داشتن یک سایت چندزبانه با وردپرس، پلاگینهای گوناگونی وجود دارند که قابلت افزودن زبان جدید را به وردپرس اضافه میکنند. از جمله این پلاگینها، پلاگین پلی لنگ (polylang) است که برخلاف پلاگین WPML محیط کاربری بسیار سادهای دارد. این پلاگین در دو نسخه رایگان و پولی عرضه میشود که میتوانید نسخه رایگان پلی لنگ را از مخزن وردپرس دانلود کنید.
در سایتهای فروشگاهی که با ووکامرس ایجاد شدهاند، برای ترجمه محصولات به سایر زبانها، نیاز به یک پلاگین جانبی برای پلی لنگ دارید. پلاگین polylang for woocommerce قابلیت ترجمه محصولات، دستهبندیها و رشتههای ووکامرس را به پلی لنگ اضافه میکند.
ویژگی همگام سازی خودکار پلی لنگ برای ووکامرس
پلاگین جانبی پلی لنگ برای ووکامرس یک ویژگی همگامسازی (Synchronization) دارد که باعث میشود اطلاعات محصولات شامل تصاویر، قیمت، موجودی و… بصورت خودکار بین همه زبانها سینک شود. این ویژگی برای افرادی که میخواهند اطلاعات محصولاتشان بصورت خودکار بین همه زبانها همگامسازی شود، عالی است. اما اگر به هر دلیلی شما بخواهید برای محصول x در زبانهای مختلف، تصویر شاخص متفاوتی استفاده کنید، این قابلیت در پلی لنگ وجود ندارد و میتواند شما را به دردسر بیندازد. به عنوان مثال فرض کنید شما قصد دارید برای محصول x در زبان فارسی تصویر pic_fa.jpeg و برای همان محصول در زبان انگلیسی تصویر pic_en.jpeg را استفاده کنید. در صورت تغییر محصول در هر یک از زبانها، در سایر زبانها نیز تصویر بصورت خودکار تغییر میکند.
اگر با پلاگین پلی لنگ کار کرده باشید، در صفحه تنظیمات این پلاگین یک گزینه برای غیر فعالسازی ویژگی همگامسازی وجود دارد اما متاسفانه این تنظیمات تاثیری روی محصولات ووکامرس ندارد. در واقع در پلاگین پلی لنگ هیچ گزینهای برای حل مشکل مطرح شده پیشبینی نشده است. اما راه حل چیست؟
این مشکلی بود که من در یکی از پروژهها با اون برخورد کردم: پلی لنگ قابلیت غیر فعالسازی ویژگی همگامسازی اطلاعات محصولات ووکامرس رو نداره. طبق معمول شروع کردم به جستجو در گوگل. هیچ نتیجه به درد بخوری پیدا نشد. از افراد مختلفی سوال پرسیدم اما هیچکس راه حلی نداشت. حتی در مستندات سایت پلی لنگ نیز برای حل این مشکل، مطلبی پیدا نشد. ربات chatGPT نیز که در روزهای نگارش این مطلب بسیار پر سر و صدا شده بود، نتوانست راه حلی پیدا کند. تا اینکه مشکلم رو در سایت Stack Overflow پرسیدم و یک نفر پاسخ دور از انتظار اما صحیحی داد. برای حل این مشکل نیاز است شما یک فایل با فرمت xml به سایت خودتون اضافه کنید که در ادامه کامل توضیح میدم.
غیر فعالسازی ویژگی همگام سازی اطلاعات محصول در پلی لنگ
این مراحل رو به ترتیب طی کنید:
- در داخل فولدر wp-content یک فولدر با نام polylang ایجاد کنید.
- در فولدر polylang یک فایل با نام wpml-config.xml ایجاد کنید.
- در فولدر polylang یک فایل با نام index.php ایجاد کنید. (اگر از هاست امنی استفاده میکنید که دسترسی به دایرکتوریها رو مسدود کرده، نیازی به انجام این مرحله ندارید.)
- کدهای زیر را به فایل wpml-config.xml اضافه کنید.
<wpml-config> <custom-fields> <custom-field action="translate">_thumbnail_id</custom-field> </custom-fields> </wpml-config>
تغییرات را ذخیره کنید و به پیشخوان وردپرس برگردید. اگر مجددا مراحل تغییر تصویر شاخص محصول ووکامرس را طی کنید میبینید که اینبار بصورت خودکار تصاویر همه محصولات تغییر نمیکند.
اگر مشکلی در استفاده از این روش داشتید، به ما اطلاع بدید.
خیلی دنبال این بودم واقعا ممنون