رفتن به مطلب

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


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

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

لینک به ارسال

سلام،

شما میتونید با یه if ساده توی functions.php تم این کار رو انجام بدید. یعضی وقتی سایت انگلیسی بود اون فیلتری که تاریخ رو توی افزونه (هر افزونه ای) به شمسی برمیگردونه رو disable کنید.

 

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

 

<?php
function _the_date($post_id = null) {

	if( empty($post_id) ) {
		global $post;
		$post_id = $post->ID;
	}

	if( CURRENT_YOUR_SITE == 'en' ) {
		// Return gregorian date
	} else {
		// Returen shamsi date
	}

}

 

لینک به ارسال

در ادامه فرمایش آقا مصطفی، برای بدست آوردن زبان هم میتونید از ثابت ICL_LANGUAGE_CODE که WPML در اختیارتون میزاره استفاده کنید:

if(  ICL_LANGUAGE_CODE === 'fa' ) {
	// تاریخ شمسی
} else {
	// تاریخ میلادی
}

 

لینک به ارسال
در 10 ساعت قبل، start گفته است :

در ادامه فرمایش آقا مصطفی، برای بدست آوردن زبان هم میتونید از ثابت ICL_LANGUAGE_CODE که WPML در اختیارتون میزاره استفاده کنید:


if(  ICL_LANGUAGE_CODE === 'fa' ) {
	// تاریخ شمسی
} else {
	// تاریخ میلادی
}

 

خیلی ممنون از آقا مصطفی و start عزیز.من مشکلم دقیقا در همون قسمت دو تا شرط هست.من if رو تو خود صفحه و با bloginfo language میزارم شاید زیاد درست نباشه ولی کارمو راه انداخته بود.مشکل من دقیقا همون قسمت کامنت شده هست :) . اگر کدی هست تو افزونه پارسی دیت یا جلالی که این کارو انجام بده خیلی ممنون میشم ازتون اگه راهنمایی کنید.دوباره با تشکر از لطفتون 

لینک به ارسال
در 5 ساعت قبل، zohaye گفته است :

خیلی ممنون از آقا مصطفی و start عزیز.من مشکلم دقیقا در همون قسمت دو تا شرط هست.من if رو تو خود صفحه و با bloginfo language میزارم شاید زیاد درست نباشه ولی کارمو راه انداخته بود.مشکل من دقیقا همون قسمت کامنت شده هست :) . اگر کدی هست تو افزونه پارسی دیت یا جلالی که این کارو انجام بده خیلی ممنون میشم ازتون اگه راهنمایی کنید.دوباره با تشکر از لطفتون 

با سلام مجدد.

تاریخ شمسی که مشخصه و از تابع پیش فرض استفاده میکنید.
اما برای گرفتن تاریخ میلادی میتونید از این کد استفاده کنید :

<?php echo gregdate("j M Y", eng_number(get_the_time('c', $post->ID)));; ?>

دقت کنید که gregdate تابع متعلق با افزونه پارسی دیت هست و برای استفاده از این کد، باید پارسی دیت رو نصب و فعال کرده باشید.

لینک به ارسال

واقعا ممنون از start عزیز که وقت گذاشتین و جواب دادین.این کد رو امتحان کردم و جواب داد.ولی وقتی پارسی دیت رو فعال میکنم کلا استایل فایل rtl.css بهم میریزن.من با جلالی کار میکردم.اگه افزونه جلالی یه همچین کدی داشته باشه که دادید دیگه مشکل به کل حل میشه فک کنم.

دوست عزیز من با این کد میتونم تاریخ شمسی رو بدست بیارم :

<?php echo jdate ('j F') ; ?>

وبا این کد هم تاریخ میلادی :

<?php echo date ('j F') ; ?>

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

<?php echo jdate('j f',$post->ID); ?>

یه چیزی تو همین مایه ها ولی جواب نمیده.

ممنون میشم اگه این راهنمایی نهایی رو هم بکنید.

ویرایش شده توسط zohaye
لینک به ارسال
  • 2 هفته بعد...

تاریخ پست ها در حلقه با توابع the_time یا the_date در دسترس هستند.

لینک به ارسال

با سلام خدمت آقا مرتضی ممنون از اینکه وقت گذاشتید.

درسته، ولی تو قسمت لاتین باز تاریخ شمسی برمیگردونه دنبال اون کدی هستم که تاریخ لاتین بده.

لینک به ارسال

الان متوجه منظورتون شدم. بسته به تابعی که استفاده می کنید مثلا:

gregdate( 'Y m d', get_the_time('Y m d') );

بیشتر:

 

لینک به ارسال

ممنون مرتضی خان تقریبا حل کردم مشکل رو.من قبلا ار جلالی استفاده میکردم ولی انگار باید برم سراغ parsidate.

باز ممنون که وقت گذاشتید.

با تشکر و موفق باشید

لینک به ارسال
  • 3 سال بعد...

سلام
من یک وبسایت دوزبانه با استفاده از افزونه polylang دارم و بنده برای داشتن تاریخ شمسی افزونه wp parsidate رو دارم مشکل اینجاست که زمانی که صفحه ادمین سایت ام زبان اش انگلیسی هست فرمت های تاریخ شمسی رو اصلا ندارم و اگه زبان داشبورد ام فارسی باشه فرمت تاریخ شمسی رو به من نمایش میده ولی اگر من فرمت تاریخ شمسی رو انتخاب کنم در هردو زبان فارسی و انگلیسی وبسایت ام تاریخ شمسی رو نمایش میده در غیر اینصورت میلادی رو
میشه دوستان اگه کسی بتونه به من کمک کنه ممنون میشم.

لینک به ارسال
در 11 ساعت قبل، مصطفی اسلامی گفته است :

سلام
من یک وبسایت دوزبانه با استفاده از افزونه polylang دارم و بنده برای داشتن تاریخ شمسی افزونه wp parsidate رو دارم مشکل اینجاست که زمانی که صفحه ادمین سایت ام زبان اش انگلیسی هست فرمت های تاریخ شمسی رو اصلا ندارم و اگه زبان داشبورد ام فارسی باشه فرمت تاریخ شمسی رو به من نمایش میده ولی اگر من فرمت تاریخ شمسی رو انتخاب کنم در هردو زبان فارسی و انگلیسی وبسایت ام تاریخ شمسی رو نمایش میده در غیر اینصورت میلادی رو
میشه دوستان اگه کسی بتونه به من کمک کنه ممنون میشم.

 

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...