نمایش تاریخ میلادی با WP Jalali و مشکل سئو؟!
- آموزش سئو وردپرس مقالات آموزشی
- بروزرسانی شده در
وقتی وردپرس فارسی را دانلود و نصب میکنید. افزونه قدیمی wp jalali بصورت پیشفرض روی سایت شما نصب میشود. اما مشکل بزرگی که این افزونه دارد، نمایش همزمان تاریخ میلادی و شمسی است. یعنی یا باید کل تاریخها شمسی باشد یا میلادی!! پس بریم برای نمایش تاریخ میلادی با WP Jalali
البته همه ما میدانیم که این افزونه سالهای سال است که آپدیت نشده. بعد از آپدیت بزرگی که توسط تیم زاکروت وب داشتدیگر آپدیتی از این افزونه سرشناس ندیدیم.اما در هر صورت هنوز در عجبم که چرا تیم وردپرس فارسی هنوز هم با آپدیت وردپرس، این افزونه را بروزرسانی نکردند و اگر قصد آپدیت ندارند حداقل آن را با Parsi Date جایگزین کنند!
اما در هر صورت هنوز در عجبم که چرا تیم وردپرس فارسی هنوز هم با آپدیت وردپرس، این افزونه را بروزرسانی نکردند و اگر قصد آپدیت ندارند حداقل آن را با Parsi Date جایگزین کنند!
پارسیدیت را هم که میشناسید. یکی از بهترین افزونههای شمسی ساز وردپرس است که توسط دوستان خوبم در تیم وردپرس پارسی ساخته شده.
آنچه در این مقاله میخوانید
اما مشکل افزونه ParsiDate چیست؟
در هر صورت هر افزونهای مشکلات خودش را دارد و برنامهنویس بی عیب خداست. تا قبل از نوروز ۱۳۹۸ روی میهن وردپرس از پارسی دیت استفاده میکردیم. اما نسخه جدید پارسی دیت با اینکه مشکل نمایش تاریخ شمسی را قبل از عید امسال حل کرد اما یک مشکل جدید را به نمایش گذاشت! مشکل عدم پشتیبانی از تابع the_modified_time که برای سایت ما و خیلی از کاربران وردپرسی مشکلات زیادی را ایجاد کرد.
البته این مورد را @glastir در انجمن وردپرس اعلام کردن. منتظر پاسخ تیم وردپرس پارسی هستیم.
و اما استفاده از WP Jalali
سعی کردیم این موضوع را قبول کنیم که باید از همان افزونه قدیمی وردپرس جلالی استفاده کنیم. البته با کمی تغییرات. چون بصورت پیشفرض وردپرس جلالی یک گزینه در اختیار شما قرار میدهد که بتوانید با استفاده از آن، تاریخ کل وردپرس را شمسی کنید. این موضوع مشکلات زیادی در بخش گزارشات افزونه EDD و ووکامرس و … ایجاد خواهد کرد.
همچنین مشکل بسیار بزرگ این گزینه این است که متادیتاهایی که باید به گوگل بصورت w3c time نمایش داده شود را بصورت شمسی با اعداد فارسی نمایش خواهد داد که خودش کلی داستان برای سئو ایجاد میکند. پس بعد از نصب افزونه وردپرس جلالی باید این گزینه را غیر فعال کنیم:
تاریخ تمامی بخشهای وردپرس از میلادی به شمسی تبدیل شود.
این گزینه باید غیر فعال شود!
نمایش تاریخ میلادی با WP Jalali
حالا تاریخ متادیتای time در گوگل بدون مشکل نمایش داده خواهد شد. تاریخ همه بخشهای وردپرس از جمله پنل مدیریت هم میلادی شد.
خب تاریخ میلادی که بدون مشکل در سایت شما نمایش داده میشود. اما با غیر فعال کردن این گزینه، عملا چرا افزونه وردپرس جلالی نصب شده؟! مگر قرار نیست تاریخ شمسی را در بخشهای مختلفی از سایت نمایش بدیم؟ اینجاست که باید دست به کد بشیم و کمی با توابع این افزونه کار کنیم.
نمایش تاریخ شمسی در WP Jalali
برای نمایش تاریخ شمسی باید از تابع jdate افزونه جلالی استفاده کنیم. یعنی با استفاده از این تابع زمان را بگیریم و نشان بدیم. پس شروع میکنیم به نوشتن یک تابع اختصاصی برای نمایش زمان. وارد فایل functions.php قالب شوید و این کد را به انتهای فایل قبل از ?> قرار دهید.
// jalali date by www.mihanwp.com
function get_jdate_publish_time(){
$greg_date = get_post_time('d F Y');
$timestamp = strtotime($greg_date);
if ( function_exists('jdate') ) {
echo jdate('d F Y',$timestamp);
} else {
echo $greg_date;
}
}
توضیح کد بالا:
ابتدا یک تابع به نام get_jdate_publish_time ساختیم. در این تابع اعلام کردیم که در متغیر greg_date تاریخ پست را بگیر. سپس با استفاده از تابع strtotime، تاریخ قابل خوندن برای انسان را به تاریخ قابل خوندن برای کامپیوتر تبدیل کن و در نهایت اگر jdate روی سایت فعال بود. (یعنی افزونه وردپرس جلالی فعال بود) این تاریخ را بصورت جلالی خروجی بگیر و echo کن.
حالا باید وارد فایل single.php یا هر جایی از وبسایتتان که قصد دارید آنجا تاریخ را نمایش دهید شده و این کد را به جای تابع get_post_time قرار دهید.
<?php get_jdate_publish_time();?>
نمایش تاریخ آپدیت پست بصورت شمسی
برای نمایش تاریخ آپدیت پست، باید همین تابع را مجدد با نام دیگری بسازیم. با این تفاوت که به جای get_post_time از get_post_modified_time استفاده میکنیم.
function get_jdate_update_time(){
$greg_date = get_post_modified_time('d F Y');
$timestamp = strtotime($greg_date);
if ( function_exists('jdate') ) {
echo jdate('d F Y',$timestamp);
} else {
echo $greg_date;
}
}
حالا به جای modified_time از get_post_modified_time استفاده میکنیم. یعنی در فایل single.php از این کد برای نمایش تاریخ آپدیت پست استفاده میکنیم.
<?php get_jdate_update_time();?>
به همین راحتی! موفق و پیروز و وردپرسی باشید.