نمایش تاریخ میلادی با 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();?>
به همین راحتی! موفق و پیروز و وردپرسی باشید.
سلام
توی المنتور چطوری میشه ازش استفاده کرد؟
ممنون از شما بابت آموزش جالب و منحصربفردتون.
من در قالب جنه، فایل Function.php رو در مسیر قالب (فولدر چایلد – که فعال هست) پیدا کردم.
اما
۱- فایل Single.php در فولدر چایلد نیست؛ در فولدر اصلی قالب هست.
۲- در فایل Single.php کد get_post_time نیست.
وقتی در هستهی وردپرس گشتم، در فایل general-template.php در آدرس wpcore\wp-includes\ تونستم این چند خط رو پیدا کنم:
Line 2580: $the_date = get_post_time( $_format, false, $post, true );
Line 2705: $the_time = get_post_time( $_format, false, $post, true );
حالا باید همین کدها در همین فایل رو «با روش این مقاله» جایگزین کنم؟
یعنی به جای فایل Single باید از این فایل general-template استفاده کنم؟ یا باید یک Single.php بسازم؟ یا راهحل دیگهای هست؟
سلام وقت بخیر هسته وردپرس رو تغییر ندین. باید ببینید کجای قالب get post time استفاده شده شاید توی فایل های پوشه های زیر مجموعه باشه.
ممنون از پاسختون
من تلاش کردم با پشتیبانی میهن وردپرس ارتباط بگیرم، ولی چون محصولی نخریدم، گزینهای برای ارسال تیکت ندارم در داشبوردم.
میخواستم بپرسم اگر این کار رو بصورت یک پروژه انجام میدین [که همین تنظیمات روی سایت من انجام بدین] هزینهش چقدر میشه.
سپاس
درود
متاسفانه ما این خدمات رو انجام نمیدیم و پشتیبانی سایت هم فقط برای افرادی هست که از ما محصول خریداری کرده باشند
سلام
روز بخیر من از wp-jalali استفاده میکردم و الان از هیچ پلاگینی استفاده نمیکنم. اعداد و تاریخ های سایتم هم چنان فارسی هستند، فقط موردی که هست اینکه تو نتایج گوگل کنار محتوا های من تاریخ زده و با اپدیت محتوا هم این تاریخ به روز نمیشه.
قالب من فلت سام هست و خیلی سال پیش از شما خریدم و بخاطر مسائل اپدیت مجبور شدم از شرکت دیگه بگیرم، ممنون میشم راهنمایی بفرمایید.
سلام روز بخیر. باید کدهای قالب رو تغییر بدید و تاریخ محتوا رو به گوگل معرفی کنید. تو دوره سایت برتر آموزشش دادم.
سلام آقای حسینی راد
من از قالب آوادا استفاده میکنم ولی از دو قالب آوادا یکی اونی که از شما گرفتم دیگری هم از سایت دیگه بخاطر سرعت بروز رسانی بیشتر هم مال شمارا استفاده میکنم ولی وقتی مال سایت دیگر را نصب میکنم تاریخی که در نتایج گوگل نمایش داده میشه تاریخ بروزرسانی است ولی قالب شما را نصب میکنم تاریخ انتشار در نتایج گوگل نمایش داده میشه اشکال از کجا است ؟ میخواهم تاریخ بروزرسانی درنتایج نمایش داده بشه در تنظیمات قالب هم روشن کردم این گذینه را
سلام وقت بخیر. اگر توی تنظیمات قالب مشخص کردید نباید مشکلی باشه. افزونههای کش رو غیرفعال و تست کنید یا کش رو خالی کنید.
کار میکنه مثل هلو
ممنون
با سلام
من میخوام تاریخ نوشته هام و بخصوص محصولات فروشگاهم در نتایج گوگل مشخص نشه لطفا بفرمایید باید چیکار کنم .. من حتی نسخه پولی افزونه یواست رو نصب کردم اما تو تنظیمات یواست در قسمت انواع محتوا گزینه تاریخ در پیش نمایش قطعه رو برای من نشون نمیده تا بتونم مخفی کنم .لطفا کمکم کنید
سلام اون مورد برای نمایش تاریخ در نتایج گوگل هست. برای اینکار شما باید قالب سایتتون رو ویرایش و اصلاح کنید.
سلام
بعد از افزودن کدهای بالا در فایل functions.php، با رفرش کردن سایت می نویسه
خطای وردپرس
سایت شما یک مشکل فنی را تجربه میکند
وسایت بالا نمیاد که با پاک کردن کد اضافه شده، سایت به حالت قبل برمی گردد.
سلام
شما باید از هاست بخواهید Display Errors را از طریق فایل php.ini فعال کنند.
بعد از فعالسازی display error باید از فایل منیجر هاستتان فایل wp-config.php را ویرایش کنید و طبق آموزش زیر مقدار wp_debug را true کنید.
https://mihanwp.com/wp-debug/
سلام
مواردی که فرموده بودید انجام دادم ولی پیام خطا میده
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
یک خطای مهم در وب سایت شما رخ داده است.
دربارهٔ اشکالزدایی در وردپرس بیشتر بدانید.
یک مرتبه قالب و افزونه ها و وردپرس سایت خود را از طریق هاست آپدیت دستی کنید
سلام وقت بخیر
کدی که برای شمسی کردن تاریخ نوشته در سایت، گذاشتید من طبق مراحلی که گفتید درانتهای فایل functions.php قرار میدم روی سایت اعمال نمیکنه و خطای وردپرس میده و کلا سایت دیگه بالا نمیاد لطفا راهنمایی کنید.ممنون
سلام
دقیقا چه خطایی دریافت میکنید؟
سلام وقت بخیر
در قالب فلت سام، فایل functions.php قالب ندارم به چه عنوان دیگری هست؟
سلام
این فایل قطعا در قالب باید باشه
سلام. ببخشید برای سئو اگه تاریخ پستها، میلادی باشه بهتره یا شمسی؟ با افزونه فارسیدیت، تاریخ پستها صحیح هست ولی در نتایج گوگل، تاریخ رو مربوط به 22 سال قبل نمایش میده.
باید چیکار کنم؟
سلام
برای اصلاح نمایش تاریخ لطفا از روشی که در این مقاله ذکر کرده ایم استفاده کنید
سلام. در قالب بی تم به جای چه کدی وجودداره که باید جایگزینش کنیم؟
متوجه سوال شمانشدم
در قالب بی تم به جای کد php get_jdate_publish_time چه کدی وجود داره که باید اون تابع رو جایگزینش کنیم؟
سلام
تفاوتی ندارد در همه قالب ها شبیه به هم هست روش کار
ولی فایل سینگل قالب من چنین کدی رو نداره
با سلام.
نظرتان در مورد افزونه persian date چیست؟
سلام
افزونه parsi date اگر منظورتان هست افزونه خوبی هست.
خیر. افزونه persian-date. ساخته MahdiY.
این افزونه رو تست نکردیم
سلام. من از افزونه WP Jalali و قالب جنه استفاده میکنم
مشکل من اینه که: وقتی یه پستی را زمانبندی میکنم برای مثال ساعت 04:00 ب.ظ و روی گزینه «زمانبندی» کلیک میکنم. خود به خود ساعتش تغیر میکنه.
و یه سوال دیگه: امکانش هست تاریخ قسمت زمانبندی ها در ویرایشگر وردپرس را شمسی کرد؟ با همین افزونه
سلام
در صورتی که قالب رو از ما خریداری کردید لطفا آدرس سایت و اطلاعات ورود رو به بخش پشتیبانی تیکت کنید تا مشکل رو بررسی کنیم
خیر قالب را از شما خریداری نکردم. سوال بنده نیز در رابطه با افزونه WP Jalali بود؟ مشکلی هم با قالب سایت ندارم
۱. افزونه های سایت را غیر فعال کرده و تست کنید. ببینید حل میشه یا خیر
۲. بله افزونه شمسی سازی نصب کنید اکثر بخش های وردپرس شمسی خواهد شد.
عاااااااااااااااااااالی
سلام
کدهایی که دادید فقط برای انتشار پست و آپدیت پست هست. اگر بخواهیم یک تاریخ معمولی مثلاً 2019/10/04 را به شمسی تبدیل کنیم ، باید از چه کدی استفاده کنیم؟
با سلام
از همین کد ها استفاده بفرمایید و هر جا که خواستید نمایش دهید
این کدها برای تاریخ انتشار و تاریخ آپدیت پشت است.
در قالب آریان ، در قسمت کامنتش ، تاریخ به صورت 2019/10/04 نمایش داده میشود. میخواهم این تاریخ را شمسی کنم.
برای این مورد هم میتونید از این کدها استفاده کنید
سلام
افزونه پارسی دیت هنوز، تاریخ آپدیت پست را نمایش نمی دهد؟
سلام خیر متاسفانه
سلام
این مشکل فقط برای تاریخ شمسی است؟ برای تاریخ قمری مشکلی وجود دارد یا خیر؟
سلام
فقط برای تاریخ شمسی هست.
سلام امکانش هست برای قالب فلت سام اموزشش رو بذارید؟
سلام خیر متاسفانه چون برای تک تک قالبها نمیتونیم این آموزش رو بذاریم. پیشنهاد میکنم اگر نیازی به تابع آپدیت پست ندارید از افزونه parsi date استفاده کنید.
چرا به اونم نیاز دارم
اگر نیاز دارید پس باید تابع رو تغییر بدید. پیشنهاد میکنیم به یک برنامه نویس بسپارید.
سلام من نمیتونم پیدا کنم فایل ها رو ممنون میشم برای فلت سام راهنمایی کنید
سلام برای قالب فلت سام باید دنبال این کد در زیر پوشهها باشید معمولا توی قالبهای حرفهای پیدا کردنش باید توسط نرم افزار ویرایش کد و search in directory انجام بشه.
سلام.
بسیار مطلب جالب و مفیدی بود.
متشکرم
سلام ممنون میشم بگین تو فلت سام ادرس این فایل ها با همین توضیحات یکی هستن یا خیر؟
سلام توی هر قالبی متفاوت هست. باید دنبال کد publish time بگردید.
استاد یعنی ما برای اینکه سئو به مشکل نخوره تاریخ میلادی رو به گوگل نمایش میدیم ولی با این کد تاریخ تبدیل به شمسی میشه و کاربر میبینه ؟
بله دقیقا
بسیار عالی
سلام
قالب من مکس شاپ هستش get_post_time این تابع رو چجوری پیدا کنم و جایگزین کنم؟؟؟
سلام باید توی کدهای قالب بخش template parts دنبالش بگردید.