wp eval 'echo wp_create_nonce("preview_post_903");'
date -u
wp option get timezone_string

下午把草稿预览链接发给客户,第二天上午十点客户点开只看到「链接已过期」四个字,重新生成一条又能打开,同样的地址前一天还是好的。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,预览地址里的 nonce 按 24 小时一个周期滚动,签发时间和校验时间跨周期就对不上。页面本身没变,失效的是那串校验参数。

「预览 nonce 过期」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。改完隔一天再看一次,当场正常不代表能稳住。

处理上按这个顺序:客户要看之前重新生成一条预览链接,别转发旧的;需要长期评审就建一个低权限账号,用登录态看草稿;把预览地址的有效期写进交付说明,避免反复来回问;检查服务器时间是否同步,时区偏差会让 nonce 提前失效。

改完只确认一件事:新生成的预览链接在无痕窗口能打开正文,旧链接提示过期。

作者 9823189