تغییر فرمت تاریخ انتشار مطالب به "time ago" در وردپرس

تغییر فرمت تاریخ انتشار مطالب به “time ago” در وردپرس

در بسیاری از وب سایت های به جای نمایش تاریخ انتشار یا بروزرسانی مطلب به شکل روز/ماه/سال از عباراتی چون “چند ساعت قبل” یا “چند روز قبل” استفاده می شود، در این مقاله قصد داریم به شما نحوه تغییر فرمت تاریخ انتشار مطالب به “time ago” یا مدت زمانی که از انتشار یا بروزرسانی مطلب در وردپرس گذشته است نشان دهیم. بدون شک استفاده از این فرمت برای برخی کاربران جذاب‌تر است.

تغییر فرمت تاریخ انتشار مطالب به “چند روز قبل” در وردپرس

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

برخی از افراد ممکن است ترجیح دهند که به اصطلاح زمان انتشار را به روشی مشابه توییتر و فیس بوک مانند پست «10 دقیقه قبل»، «1 ساعت قبل»، «3 روز قبل» و غیره داشته باشند. که در این مقاله قصد داریم به شما نحوه اضافه کردن این ویژگی و یا تغییر فرمت تاریخ انتشار مطالب را آموزش دهیم.

ایجاد یک تابع جدید در وردپرس

در روش اول شما با استفاده از قطعه کد زیر، میتوانید یک تابع جدید ایجاد کرده و به جای استفاده از توابع the_time() یا the_date() در قالب خود استفاده کنید، از مزایای استفاده از این روش میتوان به حفظ ساختار تاریخ پیشفرض وردپرس اشاره کرد که در کنار آن شما یک فرمت دیگر نیز در اختیار دارید. در واقع شما دیگر نیازی به تغییر فرمت تاریخ انتشار مطالب نداشته و یک فرمت جدید اضافه می کنید. برای ایجاد تابع جدید کد زیر را در فایل functions.php قالب خود کپی کنید:

function hgw_time_ago() {

  $new_time_format = human_time_diff( get_the_time( 'U' ), current_time( 'timestamp' ) ).' '.__( 'ago' );
	return $new_time_format;
}

برای فراخوانی نیز کد زیر را جایی داخل حلقه در قالب خود اضافه کنید، برای مثال:

<?php
if ( have_posts() ):
  while ( have_posts() ): the_post(); // شروع حلقه

      // عنوان مطلب
      the_title(); 
      // نمایش تابع جدید
      echo hgw_time_ago(); 

  endwhille(); // پایان حلقه
endif; 
?>

بهتر است برای ویرایش قالب از Child Theme یا قالب فرزند استفاده کنید تا پس از بروزرسانی تغییرات ایجاد شده از بین نروند، همچنین قبل از انجام هرگونه تغییری همیشه یک نسخه پشتیبان از سایت خود تهیه کنید.

ویرایش ساختار پیشفرض از طریق فیلترهای وردپرس

اگر نمی‌خواهید فایل‌هایی چون single.php و غیره را برای جایگذاری فرمت جدید ویرایش کنید، می‌توانید ساختار پیشفرض توابعی چون the_date() و the_time() را از طریق فیلترهای وردپرس تغییر دهید، به این منظور ابتدا کد زیر را در فایل functions.php قالب کپی کنید:

function hgw_convert_default_time_to_time_ago( $orig_time ) {
  
	global $post;
	$orig_time = strtotime( $post->post_date ); 
	return human_time_diff( $orig_time, current_time( 'timestamp' ) ).' '.__( 'ago' );
  
}

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

ویرایش تابع the_date()

add_filter( 'get_the_date', 'hgw_convert_default_time_to_time_ago', 10, 1 ); // override date display
add_filter( 'the_date', 'hgw_convert_default_time_to_time_ago', 10, 1 ); // override date display

ویرایش تابع the_time()

add_filter( 'get_the_time', 'hgw_convert_default_time_to_time_ago', 10, 1 ); // override time display
add_filter( 'the_time', 'hgw_convert_default_time_to_time_ago', 10, 1 ); // override time display

استفاده از افزونه

تغییر فرمت تاریخ انتشار مطالب به "time ago" در وردپرس

تغییر فرمت تاریخ انتشار مطالب و یا بروزرسانی مطالب از طریغ افزونه نیز امکانپذیر است، برای آن دسته از کاربران که با کدنویسی آشنایی ندارید و یا تمایلی به استفاده از کدها ندارید، میتوانید از افزونه Meks Time Ago استفاده کنید این افزونه کاملا رایگان بوده و می توانید آن را از مخزن افزونه‌های وردپرس دانلود کنید.

جمع بندی

در این مقاله با سه روش کاربردی برای تغییر فرمت تاریخ انتشار مطالب به “time ago” در وردپرس آشنا شدید، لازم به ذکر است که که هر سه روش تست شده و کاربردی بوده و شما با استفاده از هرکدام از راهکارهای ارائه شده میتوانید ساختار تاریخ و زمان خود را به زمان حال یا «10 دقیقه قبل»، «1 ساعت قبل»، «3 روز قبل» تغییر دهید.