WordPress修改时间的显示格式为几天前

WordPress本身调用时间的函数the_time()只能直接调用时间,通过他的filter,我们可以让他显示为比较科学的几天前格式。

将下边的代码丢到function.php的最后一个?>前即可。

function Bing_filter_time(){
	global $post ;
	$to = time();
	$from = get_the_time('U') ;
	$diff = (int) abs($to - $from);
	if ($diff <= 3600) {
		$mins = round($diff / 60);
		if ($mins <= 1) {
			$mins = 1;
		}
		$time = sprintf(_n('%s 分钟', '%s 分钟', $mins), $mins) . __( '前' , 'Bing' );
	}
	else if (($diff <= 86400) && ($diff > 3600)) {
		$hours = round($diff / 3600);
		if ($hours <= 1) {
 			$hours = 1;
 		}
 		$time = sprintf(_n('%s 小时', '%s 小时', $hours), $hours) . __( '前' , 'Bing' );
 	}
 	elseif ($diff >= 86400) {
		$days = round($diff / 86400);
		if ($days <= 1) {
 			$days = 1;
 			$time = sprintf(_n('%s 天', '%s 天', $days), $days) . __( '前' , 'Bing' );
 		}
 		elseif( $days > 29){
			$time = get_the_time(get_option('date_format'));
		}
		else{
			$time = sprintf(_n('%s 天', '%s 天', $days), $days) . __( '前' , 'Bing' );
		}
	}
	return $time;
}
add_filter('the_time','Bing_filter_time');

上边的代码可以让 30 天内发布的文章显示为几天前,而过了 30 天即显示为正常的标准格式日期。

来自http://www.wpdaxue.com/time-ago.html