在浏览网站时,“3 分钟前”“2 小时前” 这类相对时间格式往往比 “2023-03-08 10:00” 更直观,能让读者快速感知内容的新鲜度。
WordPress 默认的时间显示格式较为固定,但通过简单的代码修改,就能实现这种动态时间效果,适用于各类文章列表和详情页。本文将详细介绍实现方法及效果说明。
通过自定义函数,可根据文章发布时间与当前时间的差值,自动转换为对应的相对时间格式。核心代码如下:
- 通过
time()
获取当前时间戳,get_the_time('U')
获取文章发布时间戳,计算两者差值(秒)。
- 根据时间差判断区间:
- 1 小时内(≤3600 秒):转换为分钟数,显示 “XX 分钟前”。
- 1-24 小时内(3600-86400 秒):转换为小时数,显示 “XX 小时前”。
- 1-30 天内(86400-2592000 秒):转换为天数,显示 “XX 天前”。
- 超过 30 天:自动切换为 WordPress 后台设置的默认日期格式(如 “2023-03-08”)。
- 通过
add_filter('the_time', 'Bing_filter_time')
钩子,替换默认的时间显示函数。
在
主题模板中需要显示时间的位置,使用以下代码调用自定义函数:
<?php Bing_filter_time(); ?>
例如,在文章列表模板(archive.php
)或文章详情模板(single.php
)中,将原来显示时间的代码替换为上述调用语句,即可实现动态时间效果。
- 提升用户体验:相对时间格式更符合阅读习惯,让读者快速判断内容时效性。
- 兼容多种编辑器:无论使用经典编辑器还是古腾堡编辑器,只要模板中调用了该函数,均可生效。
- 自动适配时间跨度:无需手动切换格式,代码会根据时间自动调整显示方式,老文章自动恢复为标准日期格式。
通过这种方法,无需安装额外插件,仅需一段代码就能让 WordPress 的时间显示更智能、更友好,适合各类资讯、博客、教程类网站使用。如果需要调整
时间区间(如将 “30 天” 改为 “7 天”),只需修改代码中的时间阈值(秒数)即可灵活定制。