wordpress

自定义设置WordPress文章发布时间为”几天/几小时/几分钟前”

admin · 8月22日 · 2022年 983次已读

我们站长们是否有留意到有些个人博客的文章时间戳是显示的几天前、几小时前、几分钟前的发布内容,这个到底是如何设置的呢?毕竟我们常见的都会用到WordPress默认的时间,比如精准到某一天或者是几分几秒的那种,那这种的格式肯定是自定义的。

我们看看一般是如何设置的。

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');

添加到 Functions.php 文件中。

<?php Bing_filter_time() ?>

然后在有需要的位置引用。

如果我们发布的文章在1小时内,会显示多少分钟前。如果在24小时内,会显示多少小时前。如果发布的文章在7天内,会显示多少天前。如果超过了一周,则会显示默认的时间。