رفتن به مطلب

نا هماهنگی با ISO 8601


پست های پیشنهاد شده

سلام

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

که خوب برطرف شد

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


<?php echo get_the_date( 'c' ); ?>

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

ممنون

لینک به ارسال

در نگارش بعدی حل میشه

برای نمایش تاریخ میلادی میتوانید از

$post->post_date

استفاده کنید


echo date("Y/m/d",strtotime($post->post_date));

  • امتیاز 2
لینک به ارسال
  • 5 ماه بعد...

سلام

بنده میخوام از همین کدی که دوستمون گذاشتن برای یه پست با ای دی خاص استفاده کنم و فرمت تاریخ به صورت ISO 8601 نمایش داده بشه. تو حالت عادی که ظاهرا هنوز مشکل پابرجاست و اگه از تابع the_date استفاده بشه تاریخ فارسی میشه و فرمتش هم درست نیست. این کدی که رفیقمون گذاشته


date("c",strtotime($post->post_date))

عالیه. فقط مشکل اینه که چجوری باید برای یه پست با ای دی منحصر به فرد استفاده کرد. مثلا من میخوام تو برگه X تاریخ ایزو شده یه پست با ای دی Y رو نشون بدم. چه تغیری باید تو کد اعمال بشه؟

لینک به ارسال

شما کد بالا رو توی حلقه پست بزارید.

خروجیش باید درست باشه.

اگر نشد post رو گلوبال کنید باید درست نمایش بشه.

  • امتیاز 1
لینک به ارسال

شما کد بالا رو توی حلقه پست بزارید.

خروجیش باید درست باشه.

اگر نشد post رو گلوبال کنید باید درست نمایش بشه.

سلام

خداراشکر پاسخ ارسال شد. خب اگه میتونستم از حلقه استفاده کنم که حل بود. بنده میخوام تاریخ پست یه ای دی خاص رو تو یه جایی از سایت نمایش بدم. باید ای دی پست رو بگیره و تاریخ رو برگردونه. به صورت پیشفرض و با توجه به مستندات خود ورپرس اینکار به سادگی امکان پذیره و تاریخ ایزو شده رو نمایش میده و مشکلی نیست، ولی زمانی که افزونه شما فعال بشه هم تاریخ فارسی میشه و هم از اون فرمت استاندارد خارج میشه؟ راه حل؟ تاکید میکنم بنده تمایلی به استفاده از حلقه ندارم

ضمنا ببینید سال 93 یه دوستی همین مشکل رو داشتن و فرمودید "در نگارش بعدی حل میشه" اما همچنان مشکل پابرجاست در صورتی که از اون موقع دو یا سه بروزرسانی افزونه انجام شده و مشکل پابرجاست.

لینک به ارسال

چون هوک های وردپرس برای تاریخ ها محدود هست هنوز این مورد حل نشده.

شما کدتون رو بدید تا بررسی و تصحیح کنم.

لینک به ارسال

سلام

ممنون. این کد بنده:


get_the_date( 'c' , $post_id);

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

لینک به ارسال

شما این تابع رو استفاده کنید درست نمایش میده:

function wpp_iso_8601($post_id){
$getPostID = $wpdb->get_col("
SELECT post_date
FROM $wpdb->posts
WHERE post_status = 'publish'
AND post_type = 'post'
AND ID = '$post_id'
");

$user_tz = 'America/Los_Angeles';
$schedule_date = new DateTime($getPostID[0], new DateTimeZone($user_tz) );
$schedule_date->setTimeZone(new DateTimeZone('UTC'));
$triggerOn = $schedule_date->format('c');

return $triggerOn;
}

نکته اینکه میتونید تایم زون رو خودتون رو هر چی نیاز هست ست کنید.

  • امتیاز 3
لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

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



ورود به حساب کاربری
×
×
  • اضافه کردن...