مهدی

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

9 پست در این موضوع قرار دارد

سلام

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

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

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


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

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

ممنون

0

به اشتراک گذاری این پست


لینک به پست

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

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

$post->post_date

استفاده کنید


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

2

به اشتراک گذاری این پست


لینک به پست

ممنون

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


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

0

به اشتراک گذاری این پست


لینک به پست

سلام

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


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

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

0

به اشتراک گذاری این پست


لینک به پست

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

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

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

1

به اشتراک گذاری این پست


لینک به پست

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

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

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

سلام

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

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

0

به اشتراک گذاری این پست


لینک به پست

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

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

0

به اشتراک گذاری این پست


لینک به پست

سلام

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


get_the_date( 'c' , $post_id);

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

0

به اشتراک گذاری این پست


لینک به پست

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

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

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری