WordPress文章发布时间显示不正确

首先我们登录WordPress后台,进入设置 > 常规页面。这里藏着两个关键选项:时区日期/时间格式。时区下拉菜单默认可能显示”UTC+0″,这就是问题的常见源头。建议选择具体的城市时区(如”上海”),这样能自动适配夏令时变更。

注意:如果你运营的是国际网站,可能需要考虑使用UTC时间并手动计算时差。不过对大多数中文站点来说,直接选择亚洲/上海时区最省心。

日期格式也值得关注。有些主题会直接调用这里的设置,如果你看到前台显示”2024-03-05″而你想要”2024年3月5日”,就需要修改日期格式为自定义格式。

即使后台设置正确,服务器环境仍可能”偷走”你的时间。通过FTP或主机控制面板找到网站根目录下的wp-config.php文件,检查是否有这样的代码:

define('WP_TIMEZONE_STRING', 'UTC');  // 强制覆盖后台设置

如果有,建议删除或修改为:

define('WP_TIMEZONE_STRING', 'Asia/Shanghai');

更彻底的方法是联系主机商确认服务器时间。在cPanel中可以通过高级 > 服务器信息查看,Linux用户可以用SSH执行:

date  // 返回服务器当前时间
timedatectl  // 查看详细时区配置

某些主题会重写时间显示逻辑。尝试切换到Twenty Twenty-Four等默认主题,如果时间显示恢复正常,就说明原主题有问题。检查主题的functions.php或模板文件中是否有类似代码:

echo get_the_date('Y-m-d');  // 原始时间调用
// 可能被修改为:
echo human_time_diff(get_the_time('U'), current_time('U')) . '前';  // 显示相对时间

插件冲突也不容忽视。特别是缓存插件(如WP Rocket)会静态化时间显示,SEO插件(如Rank Math)可能修改结构化数据中的时间戳。建议逐一切换插件测试,找到元凶后检查其设置中是否有”修改时间格式”选项。

如果以上方法都无效,可能需要直捣黄龙——检查数据库。通过phpMyAdmin打开网站的wp_posts表,找到问题文章的post_datepost_date_gmt字段。理想状态下,GMT时间应该比本地时间早8小时(假设你在中国时区)。

异常情况有两种:

  1. 两个时间相同 → WordPress时区设置未生效
  2. GMT时间更晚 → 服务器时间本身有误

这时可以手动修正数据(操作前务必备份):

UPDATE wp_posts SET post_date_gmt = DATE_SUB(post_date, INTERVAL 8 HOUR) WHERE ID = 文章ID;

By 酒玖

大坑套小坑,小坑里有洞,洞底有暗河

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注