ثبت‌نام ورود

نمایش تاریخ میلادی با WP Jalali و مشکل سئو؟!

تاریخ میلادی با 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();?>

به همین راحتی! موفق و پیروز و وردپرسی باشید.

نظر یا سوال شما در این مورد چیست؟

  1. U21585 ۲۰ اردیبهشت ۱۳۹۹

    سلام
    بعد از افزودن کدهای بالا در فایل functions.php، با رفرش کردن سایت می نویسه
    خطای وردپرس
    سایت شما یک مشکل فنی را تجربه می‌کند
    وسایت بالا نمیاد که با پاک کردن کد اضافه شده، سایت به حالت قبل برمی گردد.

    • تیم پشتیبانی تیم پشتیبانی ۲۰ اردیبهشت ۱۳۹۹

      سلام
      شما باید از هاست بخواهید Display Errors را از طریق فایل php.ini فعال کنند.

      بعد از فعالسازی display error باید از فایل منیجر هاستتان فایل wp-config.php را ویرایش کنید و طبق آموزش زیر مقدار wp_debug را true کنید.

      https://mihanwp.com/wp-debug/

      • U21585 ۲۱ اردیبهشت ۱۳۹۹

        سلام
        مواردی که فرموده بودید انجام دادم ولی پیام خطا میده

        Parse error: syntax error, unexpected ‘<', expecting end of file in /home/abgova/domains/abgovara.com/public_html/wp-content/themes/flatsome/functions.php on line 33
        یک خطای مهم در وب سایت شما رخ داده است.

        دربارهٔ اشکال‌زدایی در وردپرس بیشتر بدانید.

        • تیم پشتیبانی تیم پشتیبانی ۲۱ اردیبهشت ۱۳۹۹

          یک مرتبه قالب و افزونه ها و وردپرس سایت خود را از طریق هاست آپدیت دستی کنید

  2. U21585 ۲۰ اردیبهشت ۱۳۹۹

    سلام وقت بخیر
    کدی که برای شمسی کردن تاریخ نوشته در سایت، گذاشتید من طبق مراحلی که گفتید درانتهای فایل functions.php قرار میدم روی سایت اعمال نمیکنه و خطای وردپرس میده و کلا سایت دیگه بالا نمیاد لطفا راهنمایی کنید.ممنون

  3. U21585 ۱۵ اردیبهشت ۱۳۹۹

    سلام وقت بخیر
    در قالب فلت سام، فایل functions.php قالب ندارم به چه عنوان دیگری هست؟

  4. U13636 ۰۹ اردیبهشت ۱۳۹۹

    سلام. ببخشید برای سئو اگه تاریخ پست‌ها، میلادی باشه بهتره یا شمسی؟ با افزونه فارسی‌دیت، تاریخ پست‌ها صحیح هست ولی در نتایج گوگل، تاریخ رو مربوط به 22 سال قبل نمایش میده.
    باید چیکار کنم؟

  5. U27210 ۰۷ اردیبهشت ۱۳۹۹

    با سلام.
    نظرتان در مورد افزونه persian date چیست؟

  6. U6192 ۰۳ اردیبهشت ۱۳۹۹

    سلام. من از افزونه WP Jalali و قالب جنه استفاده میکنم
    مشکل من اینه که: وقتی یه پستی را زمانبندی میکنم برای مثال ساعت 04:00 ب.ظ و روی گزینه «زمانبندی» کلیک میکنم. خود به خود ساعتش تغیر میکنه.
    و یه سوال دیگه: امکانش هست تاریخ قسمت زمانبندی ها در ویرایشگر وردپرس را شمسی کرد؟ با همین افزونه

    • تیم پشتیبانی تیم پشتیبانی ۰۳ اردیبهشت ۱۳۹۹

      سلام
      در صورتی که قالب رو از ما خریداری کردید لطفا آدرس سایت و اطلاعات ورود رو به بخش پشتیبانی تیکت کنید تا مشکل رو بررسی کنیم

      • U6192 ۰۴ اردیبهشت ۱۳۹۹

        خیر قالب را از شما خریداری نکردم. سوال بنده نیز در رابطه با افزونه WP Jalali بود؟ مشکلی هم با قالب سایت ندارم

        • تیم پشتیبانی تیم پشتیبانی ۰۴ اردیبهشت ۱۳۹۹

          ۱. افزونه های سایت را غیر فعال کرده و تست کنید. ببینید حل میشه یا خیر
          ۲. بله افزونه شمسی سازی نصب کنید اکثر بخش های وردپرس شمسی خواهد شد.

  7. کاربر مهمان ۱۰ بهمن ۱۳۹۸

    عاااااااااااااااااااالی

  8. U6469 ۱۲ مهر ۱۳۹۸

    سلام
    کدهایی که دادید فقط برای انتشار پست و آپدیت پست هست. اگر بخواهیم یک تاریخ معمولی مثلاً 2019/10/04 را به شمسی تبدیل کنیم ، باید از چه کدی استفاده کنیم؟

    • تیم پشتیبانی تیم پشتیبانی ۱۳ مهر ۱۳۹۸

      با سلام
      از همین کد ها استفاده بفرمایید و هر جا که خواستید نمایش دهید

      • U6469 ۱۳ مهر ۱۳۹۸

        این کدها برای تاریخ انتشار و تاریخ آپدیت پشت است.
        در قالب آریان ، در قسمت کامنتش ، تاریخ به صورت 2019/10/04 نمایش داده میشود. میخواهم این تاریخ را شمسی کنم.

  9. U5807 ۲۱ شهریور ۱۳۹۸

    سلام
    افزونه پارسی دیت هنوز، تاریخ آپدیت پست را نمایش نمی دهد؟

  10. U6469 ۱۱ شهریور ۱۳۹۸

    سلام
    این مشکل فقط برای تاریخ شمسی است؟ برای تاریخ قمری مشکلی وجود دارد یا خیر؟

  11. U10966 ۰۴ خرداد ۱۳۹۸

    سلام امکانش هست برای قالب فلت سام اموزشش رو بذارید؟

    • رضا حسینی راد رضا حسینی راد ۰۴ خرداد ۱۳۹۸

      سلام خیر متاسفانه چون برای تک تک قالب‌ها نمی‌تونیم این آموزش رو بذاریم. پیشنهاد می‌کنم اگر نیازی به تابع آپدیت پست ندارید از افزونه parsi date استفاده کنید.

  12. U10966 ۰۴ خرداد ۱۳۹۸

    سلام من نمیتونم پیدا کنم فایل ها رو ممنون میشم برای فلت سام راهنمایی کنید

    • رضا حسینی راد رضا حسینی راد ۰۴ خرداد ۱۳۹۸

      سلام برای قالب فلت سام باید دنبال این کد در زیر پوشه‌ها باشید معمولا توی قالب‌های حرفه‌ای پیدا کردنش باید توسط نرم افزار ویرایش کد و search in directory انجام بشه.

  13. U576 ۰۲ خرداد ۱۳۹۸

    سلام.
    بسیار مطلب جالب و مفیدی بود.
    متشکرم

  14. U10966 ۰۲ خرداد ۱۳۹۸

    سلام ممنون میشم بگین تو فلت سام ادرس این فایل ها با همین توضیحات یکی هستن یا خیر؟

  15. U9570 ۰۲ خرداد ۱۳۹۸

    استاد یعنی ما برای اینکه سئو به مشکل نخوره تاریخ میلادی رو به گوگل نمایش میدیم ولی با این کد تاریخ تبدیل به شمسی میشه و کاربر میبینه ؟

  16. کاربر مهمان ۰۱ خرداد ۱۳۹۸
  17. U3694 ۰۱ خرداد ۱۳۹۸

    سلام
    قالب من مکس شاپ هستش get_post_time این تابع رو چجوری پیدا کنم و جایگزین کنم؟؟؟