تاریخ شمسی و میلادی WPML

چند وقتیه که مشغول کار راه اندازی  وبسایت حفاظت از تالاب بندر انزلی هستم. این سایت چند زبانه هست و یکی از بزرگترین مشکلاتی که داشتم عدم هماهنگی بین افزونه های WPML و WP-jalali بود. به طوری که به صورت خودکار بین تاریخ ها سوئیچ نمی‌شد.یعنی می‌خواستم در بخش انگلیسی سایت تاریخ میلادی نشون داده بشه و در بخش فارسی، تاریخ شمسی.

توی سایت ها و انجمن های مختلف فارسی هم راه حل خاصی ذکر نشده بود.

تا این که یه مقدار وقت گذاشتم و کد زیر رو نوشتم:

<?php
$mylocale = get_bloginfo('language');
if($mylocale == 'fa-IR'){
add_filter('date_i18n', 'ztjalali_ch_date_i18n', 111, 4);}
?>

اگه شما هم مثل من با این مشکل روبرو شدید کافیه این چند خط کد رو به فایل function.php  قالبتون اضافه کنید و در تنظیمات افزونه wp-jalali گزینه “” رو غیر فعال کنید.

یه توضیح مختصر هم در مورد این چند خط بدم:
تبدیل تاریخ میلادی به شمسی توسط فیلتری که در انتهای کد اومده انجام میشه. البته من اینو روی نسخه پنجم افزونه wp-jalali تست کردم.

حالا ما باید یه شرطی بزاریم که اگه زبان صفحه فارسی بود این فیلتر اعمال بشه. این شرط هم همون خط دوم هست. در خط اول زبان صفحه تشخیص داده میشه و با عبارت “fa-IR” مقایسه میشه. اگه برابر بود، فیلتر مورد نظرمون اعمال میشه.

با این روش امکان اعمال هر تغییری در سایت به طور جداگانه برای زبان های مختلف وجود داره. کافیه زبان مورد نظر رو در شرط مشخص کنید و به جای فیلتر هم دستورات مورد نظرتون رو قرار بدید.