要实现WordPress页面显示"当前时间的前30分钟",有几种不同的方法,具体取决于你想在哪种场景下使用。
方案一:使用代码直接显示偏移后的时间
这个方案是通过在主题文件中添加PHP代码,直接计算出当前时间减去30分钟的结果并显示。
步骤:
找到主题文件:在你的WordPress后台,进入 外观 -> 主题文件编辑器。找到你想要显示这个时间的模板文件,例如:
index.php (首页)
single.php (文章页)
page.php (页面)
footer.php (页脚)
添加代码:在你希望时间出现的位置,粘贴以下代码:
<?php
// 获取WordPress当前时间的时间戳
$current_timestamp = current_time('timestamp');
// 计算30分钟前的时间戳 (30分钟 = 30 * 60秒)
$thirty_minutes_ago_timestamp = $current_timestamp - (30 * 60);
// 定义你想要的显示格式,例如 'Y-m-d H:i:s' 会显示成 2024-05-20 14:35:00
$date_format = 'Y-m-d H:i:s';
// 将时间戳格式化为可读的日期时间字符串并输出
echo date_i18n($date_format, $thirty_minutes_ago_timestamp);
?>
代码说明:
current_time('timestamp'): 这是一个WordPress函数,用于安全地获取当前的Unix时间戳,它会考虑你在 设置 -> 常规 中设定的时区-1。
(30 * 60): 这是30分钟对应的秒数。
date_i18n(): 这个WordPress函数会根据你设定的格式和国际化设置来显示日期和时间-8。
$date_format 变量: 你可以修改这个格式,例如改为 'g:i a' 会显示成 2:35 pm。更多格式请参考PHP日期格式文档。
方案二:使用简码(Shortcode)实现更灵活的调用
如果你希望在不直接修改主题PHP文件的情况下,在文章、页面或小工具中插入这个动态时间,可以自己创建一个简码。
步骤:
将代码添加到主题的 functions.php 文件:
进入 外观 -> 主题文件编辑器,找到 functions.php 文件,在文件末尾添加以下代码:
// 创建一个简码 [time_minus_30]
function display_time_minus_30_shortcode() {
// 获取当前时间戳并减去30分钟
$current_timestamp = current_time('timestamp');
$thirty_minutes_ago_timestamp = $current_timestamp - (30 * 60);
// 设置时间格式
$date_format = 'Y-m-d H:i:s';
// 返回格式化后的时间
return date_i18n($date_format, $thirty_minutes_ago_timestamp);
}
add_shortcode('time_minus_30', 'display_time_minus_30_shortcode');
保存文件。
在需要的地方使用简码:
在文章/页面中:直接在编辑器内容中输入 [time_minus_30]。
在侧边栏/页脚等小工具区域:在后台 外观 -> 小工具 中,添加一个"文本"或"简码"小工具,然后在其中输入 [time_minus_30]。
重要提示:理解"页面显示的时间"
请注意,上述所有代码生成的是一个动态的、实时的时间。这意味着,无论用户何时访问这个页面,看到的时间始终是"他/她访问那一刻的当前时间减去30分钟"。
这个值会每分每秒都在变化,并不是一个固定在文章或页面发布时的静态时间。
如果你是想修改文章的发布时间(例如,让所有文章看起来像是30分钟前发布的),那完全是另一种需求,需要修改数据库或使用类似 human_time_diff 的函数来显示相对时间,而非一个绝对时间点。
原文