UPDATE wp_posts
SET post_status = 'future',
post_date = '2027-01-01 09:00:00',
post_date_gmt = '2027-01-01 01:00:00'
WHERE ID = 612;
把一篇已发布文章的日期改成下个月一号,保存后前台链接仍然能打开,首页列表里也还在,状态显示的还是已发布。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:可见性由 post_status 决定,日期只是排序和归档的依据。只改 post_date 不动状态,文章仍是 publish,查询不会因为时间在未来就把它藏起来。
这次卡住的地方就在「未来时间文章可见」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。同一份配置存在多处的,先确认改的是被加载的那一份。
新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
处理上按这个顺序:在编辑页把状态从已发布改成定时,让 WordPress 自己算 future;用命令行改时同时更新 post_date 和 post_date_gmt,两个都要写;改完清一次首页和归档的缓存,否则列表还是旧的。
确认没问题再收工,前台访问该链接返回 404,后台状态显示为定时,到了设定时间才转为已发布。
