让WordPress显示某个时间前发表和最近更新时间方法(修改版)

2020-06-03浏览 314 评论 0

让WordPress显示时间为某个时间前发表,把以下代码添加到function文件内:

//time ago show yijiexiaomi.com
add_filter('past_date');
function past_date(){
$suffix='前';
$endtime='31536000';
$year = '年';
$month = '月';
$day = '天';
$hour = '小时';
$minute = '分钟';
$second = '秒';
if ($_SERVER['REQUEST_TIME'])
$now_time = $_SERVER['REQUEST_TIME'];
else
$now_time = time();
$m = 60; // 一分钟
$h = 3600; //一小时有3600秒
$d = 86400; // 一天有86400秒
$mo = 2592000; // 一月有2592000秒
$ye = 31536000; // 一年有2592000秒
$endtime = (int)$endtime; // 结束时间
$post_time = get_post_time('U', true);
$past_time = $now_time - $post_time; // 文章发表至今经过多少秒
if($past_time < $m){ //小于1分钟
$past_date = $past_time . $second;
}else if ($past_time < $h){ //小于1小时
$past_date = $past_time / $m;
$past_date = floor($past_date);
$past_date .= $minute;
}else if ($past_time < $d){ //小于1天
$past_date = $past_time / $h;
$past_date = floor($past_date);
$past_date .= $hour;
}else if ($past_time < $mo){
$past_date = $past_time / $d;
$past_date = floor($past_date);
$past_date .= $day;
}else if ($past_time < $ye){
$past_date = $past_time / $mo;
$past_date = floor($past_date);
$past_date .= $month;
}else if ($past_time < $ye*12){
$past_date = $past_time / $ye;
$past_date = floor($past_date);
$past_date .= $year;
}else{
echo get_post_time('Y-m-d');
return;
}
echo $past_date . $suffix;
}

在文章页或者列表页需要显示的地方添加<?php echo past_date(yy-mm-dd); ?>代码即可!效果如本站!

另外文章内“发表于-日期 - 最近更新于-日期 ”代码如下:显示效果见本文-(把代码添加在文章页single.php需要显示的位置)

<p class='last-updated'>
<?php $u_time = get_the_time( 'U' );
$u_modified_time = get_the_modified_time( 'U' );
if ( $u_modified_time >= $u_time + 86400 ) {
echo "发表于 ";
echo past_date('yy-mm-dd ');
echo " - ";
echo " 最近更新于 ";
the_modified_time( 'Y-m-j l ' );
} else {
echo "发表于 ";
the_time( 'Y-m-j l' );
} ?></p>

在网上找了一些代码,通过修改成为自己想要的样子。

a = 一般在12小时制显示时使用,显示当前是 am(上午)或 pm(下午) A = 功能同上,区别是 am 或 pm 为大写

d = 一月中的哪一天,固定以两位数显示

F = 文字全称表示的月份

g = 12小时制的小时数,位数根据实际的时间决定 G = 24小时制的小时数,位数根据实际的时间决定

h = 12小时制的小时数,固定以两位数显示 H = 24小时制的小时数,固定以两位数显示

注:如当前时间是早上8点,用 h 参数输出的结果为 08,用 g 参数输出的结果为 8,换成大写后仅改变时制。

i = 当前分钟数 I = 输出一个零,不知何用,望知道的兄弟指教。(大写 i)

j = 一月中的哪一天,位数根据实际的日期决定

l = 文字表示的星期(小写 L) L = 输出一个零,不知何用,望知道的兄弟指教。

m = 数字表示的月份 M = 英文缩写的月份

s = 当前秒数 S = 一般跟随参数 j 使用,效果是在天数后加上序数词后坠(st, nd ,rd 等)

Y = 4位数的年份 y = 2位数的年份

注:参数区分大小写,写在参数引号内的非参数字符不做处理,直接输出。


发表于 3个月前 - 当日最后一次编辑于 13:42 星期三

29 + 99 = ?

评论审核已启用。您的评论可能需要一段时间后才能被显示。