性价比最高的香港ASP、PHP主机提供商
做网站,就上凡科建站

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

Loading
1
Comodo SLL证书促销 - 免费ssl证书申请_ssl证书购买_ev ssl证书_https证书购买 - GDCA_数安时代

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
 * WordPress 修改时间的显示格式为几天前
 * https://www.wpdaxue.com/time-ago.html
 */
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 天即显示为正常的标准格式日期。

MetInfo | 最适合企业网站建设的cms系统

关于 斌果

该用户很懒,还没有介绍自己。

精彩推荐

WordPress 小工具指定页面显示: Conditional Widgets

WordPress 小工具指定页面显示: Conditional Widgets

WordPress在指定页面显示/隐藏小工具的插件:Restrict Widgets

WordPress在指定页面显示/隐藏小工具的插件:Restrict Widgets

14 条评论

  1. 想显示提前几个月怎么改上面的代码

  2. 同样的问题
    新发布文章显示为8小时前

  3. 想问一下博主,为啥我网站的Wordpress文章每次新发布的时间为8小时前,UTC的时间比本地的少八个小时,Wordpress里已经修改为UTC+8了还是不可以

  4. 还是来博主这学东西靠谱

  5. $time = sprintf(_n(‘%s 分’, ‘%s 分种’, $mins), $mins) . __( ‘前’ , ‘Bing’ );
    错了一个字

  6. 老大
    我用的是wp3.8 使用这篇文章代码后效果是这样的:
    新发布文章显示为8小时前
    然后在7,6,5小时前…

    请问一下是怎么回事??

  7. 新发布文章显示为8小时前

  8. 分种(钟)?

  9. 不错,以后用得着

发表评论