یکی از چالشهای اولیهای که پس از راهاندازی یک سایت وردپرسی به زبان فارسی با آن روبرو میشویم، مشکل نمایش تاریخ به صورت انگلیسی (میلادی) است. مشاهده تاریخهایی مانند August 25, 2024 در میان متون فارسی، نهتنها از نظر ظاهری ناهماهنگ است، بلکه میتواند برای کاربران ایرانی گیجکننده باشد. خوشبختانه، وردپرس قابلیتهای قدرتمندی برای بومیسازی و از جمله فارسیسازی کامل تاریخ در اختیار ما قرار میدهد. در این مقاله، به بررسی روشهای مختلف، از ساده تا پیشرفته، برای حل این مشکل میپردازیم.
علت اصلی نمایش تاریخ به انگلیسی
برای حل هر مشکلی، درک ریشه آن ضروری است. وردپرس به طور پیشفرض از تنظیمات منطقهای (Locale) سرور میزبانی شما پیروی میکند. اگر سرور شما در یک منطقه انگلیسیزبان قرار داشته باشد، تنظیمات تاریخ پیشفرض وردپرس نیز بر اساس تقویم میلادی و فرمت انگلیسی خواهد بود. حتی پس از انتخاب زبان سایت به فارسی، ممکن است برخی از این تنظیمات به درستی اعمال نشوند، چرا که موضوع تاریخ تنها به زبان محدود نمیشود و به “قالب تاریخ” (Date Format) مرتبط است.
روش اول: استفاده از افزونهها برای تاریخ شمسی
اگر میخواهید تاریخها به طور خودکار و دقیق به تقویم شمسی تبدیل شوند و حتی نام ماهها نیز به فارسی نمایش داده شوند، استفاده از افزونهها بهترین گزینه است. این افزونهها نهتنها تاریخ نوشتهها، بلکه تاریخ نظرات، قسمت مدیریت وردپرس و سایر بخشها را نیز فارسی میکنند.
افزونه WP-Parsidate
این افزونه تخصصی، تمرکز اصلی خود را بر روی فارسیسازی تاریخ، اعداد و ارقام قرار داده است. این افزونه بسیار سبک و بهینه است و با بیشتر قالبها و افزونههای محبوب سازگاری دارد.
نحوه استفاده از افزونه:
در صفحه افزونه ها parsi date را سرچ کنید
دکمه نصب، سپس فعالسازی را بزنید
در تنظیمات به قسمت پارسی دیت بروید
در بخش هسته گزینه تاریخ خورشیدی را فعال کنید
دکمه ذخیره تغییرات را بزنید
افزونه WP Jalali
افزونه WP-Jalali یک راهحل ساده و مؤثر برای فارسیسازی تاریخ در وردپرس است که پس از نصب، بهطور خودکار تاریخهای میلادی را به تقویم شمسی تبدیل میکند. این افزونه بدون نیاز به تنظیمات پیچیده، هم در پیشخوان وردپرس و هم در بخش کاربری سایت فعال میشود و با ارائه تقویم جلالی در ویرایشگر، امکان مدیریت تاریخها به زبان فارسی را فراهم میکند.
نحوه استفاده از افزونه:
در صفحه افزونه ها WP-Jalali را سرچ کنید
دکمه نصب، سپس فعالسازی را بزنید
به منوی تنظیمات > عمومی بروید
در بخش Timezone گزینه Tehran را انتخاب کنید
در بخش Date Format یکی از فرمتهای شمسی را انتخاب کنید
توجه: این افزونهها را همزمان فعال نکنید زیرا فعال بودن چند افزونه مشابه به صورت همزمان ممکن است باعث تداخل و مشکل در نمایش تاریخها شود.
روش دوم: فارسیسازی دستی با استفاده از کد (برای توسعهدهندگان)
برای کسانی که تمایل به استفاده از افزونه ندارند یا نیاز به کنترل بیشتری روی خروجی دارند، افزودن کد به فایل functions.php قالب فرزند (Child Theme) روشی حرفهای و دائمی است.
نمونه کد برای تغییر فرمت تاریخ:
میتوانید با استفاده از فیلترهای وردپرس، فرمت پیشفرض تاریخ را در کل سایت تغییر دهید.
// تغییر فرمت پیشفرض تاریخ به فرمت فارسی (عددی)
function my_custom_date_format() {
return 'Y/m/d'; // فرمت: سال/ماه/روز (با اعداد)
}
add_filter('date_format', 'my_custom_date_format');
تبدیل تاریخ میلادی به شمسی با PHP:
برای تبدیل دقیق تاریخ به شمسی، نیاز به استفاده از توابع مخصوص تقویم جلالی داریم. کتابخانهای مانند jdf (توسعهیافته توسط جمشید مختاری) برای این کار بسیار محبوب است.
ابتدا فایل jdf.php را دانلود کرده و در پوشه قالب فرزند خود آپلود کنید.
سپس کدهای زیر را به فایل functions.php قالب فرزند اضافه نمایید:
// بارگذاری کتابخانه تاریخ شمسی
require_once get_stylesheet_directory() . '/jdf.php';
// تابع برای تبدیل تاریخ به شمسی
function gregorian_to_jalali($date) {
$date = explode(' ', $date);
$gregorian_date = $date[0];
list($year, $month, $day) = explode('-', $gregorian_date);
// تبدیل تاریخ میلادی به شمسی
$jalali_date = gregorian_to_jalali($year, $month, $day);
// ترکیب تاریخ شمسی و بازگرداندن آن
$jalali_date = implode('/', $jalali_date); // فرمت: ۱۴۰۳/۰۶/۰۵
return $jalali_date;
}
// فیلتر برای اعمال تبدیل روی تاریخ نوشتهها
function custom_jalali_date($the_date) {
return gregorian_to_jalali($the_date);
}
add_filter('get_the_date', 'custom_jalali_date');
add_filter('get_the_time', 'custom_jalali_date');
توجه: این یک نمونه ساده است. پیادهسازی کامل و بدون خطا نیاز به بررسی خط به خط و اطمینان از صحت تبدیل در تمامی قسمتها دارد.
نکات مهم و عیبیابی
همیشه از قالب فرزند استفاده کنید: اضافه کردن کد به فایل functions.php قالب اصلی، با بهروزرسانی قالب، تمام تغییرات شما را از بین میبرد. استفاده از قالب فرزند بهترین روش برای سفارشیسازیهای پایدار است.
کش(cache) را پاک کنید: پس از اعمال تغییرات، حتماً کش سایت و کش مرورگر خود را پاک کنید تا تغییرات را به وضوح ببینید.
بررسی سازگاری: قبل از نصب هر افزونهای، از سازگاری آن با نسخه وردپرس خود اطمینان حاصل کنید.
پشتیبانگیری فراموش نشود: قبل از اعمال هرگونه تغییر اساسی در کدهای سایت، حتماً از سایت خود پشتیبان (Backup) کامل تهیه کنید.
روش سوم: از طریق پیشخوان وردپرس
وارد پیشخوان وردپرس (WordPress Dashboard) شوید.
به صفحه تنظیمات > عمومی، بروید
در این بخش، شما با چند گزینه مواجه میشوید:
قالب تاریخ (Date Format): این گزینه، فرمت نمایش تاریخ را مشخص میکند. شما میتوانید یکی از فرمتهای پیشفرض را انتخاب کنید یا یک فرمت سفارشی ایجاد نمایید.
قالب زمان (Time Format): مشابه گزینه قبل، اما مخصوص نمایش ساعت.
تاریخ آغاز هفته (Week Starts On): این گزینه را بر اساس تقویم شمسی، بر روی “شنبه” تنظیم کنید.
این روش به طور کاملتری در مقالهی “تنظیم موقعیت مکانی برای تنظیم ساعت” آموزش داده شده است.
جمعبندی
فارسیسازی تاریخ در وردپرس، اگرچه در نگاه اول یک مشکل کوچک به نظر میرسد، اما تاثیر بسزایی در کاربرپسند بودن سایت شما دارد. با توجه به سطح دانش و نیاز خود میتوانید از میان روشهای مختلف، بهترین گزینه را انتخاب کنید: استفاده از افزونهها برای راهحلی کامل و بدون دردسر، کدنویسی دستی برای توسعهدهندگان و علاقهمندان به کنترل حداکثری، و یا با استفاده از پیشخوان خود وردپرس. با اجرای صحیح هر یک از این روشها، سایت وردپرسی شما هویت فارسی خود را به طور کامل پیدا خواهد کرد.