搜索全站
常规配置 6 分钟阅读

WordPress 定时文章不发布?时区设置错误解决办法

定时文章一直显示"已计划"、迟迟不发布?本文讲清 WordPress 时区设置与 WP-Cron 触发机制,教你排查并解决定时文章不发布的故障,并给出改用系统计划任务的方案,让定时文章每次都准时上线,再也不用盯着时间手动发布,一次配置长期有效更省心。

U
UFO_PF 2026-10-10 · 阅读 6 分钟
Wo 常规配置
阅读提示
本文约 2,008 字,预计阅读 6 分钟。文中命令与配置均经过实测,可直接参考执行。

引言

写好了文章,设置成明天早上八点定时发布,结果到了时间刷新一看,状态还停在「已计划」,文章根本没上架;有时甚至过了好几天才突然冒出来,时间完全对不上。这个毛病在新建的、访问量还很小的小站上特别常见,站长们往往以为是时区设错了,改来改去却不见效,随后开始怀疑主题或插件,白白浪费大量时间。实际上,WordPress 的定时发布由两个环节共同决定:一是「设置 → 常规」里的时区是否正确,二是负责触发任务的 WP-Cron 机制有没有正常运行。这两者一个管「几点发」,一个管「由谁来触发发布」,缺一不可。搞清楚它们的关系,问题就好解决了。另外要提醒一点,定时发布本身允许几分钟到几十分钟的误差,这属于 WordPress 的正常行为,不必追求分秒不差。

故障原因分析

  1. 时区选错。若时区被设成 UTC 或与所在地不符,你定的「早上八点」会按错误时区解析,导致发布时间偏离甚至被当成过去时间,任务卡住不执行。
  2. WP-Cron 依赖访问触发。WordPress 的定时任务不是服务器级的计划任务,而是靠有人访问网站时才被唤醒执行,小站无人访问就一直不触发。
  3. 服务器系统时间错误。系统时钟不准,会让任务判断「还没到时间」或「已经过期」,怎么等都发不出来。
  4. 缓存或静态化阻断。全站静态缓存让 wp-cron.php 请求被拦截,任务无法运行。
  5. 插件冲突或任务被禁用。某些优化插件直接禁用了 WP-Cron,却忘了配置系统级计划任务。
  6. 把「已发布」的文章改回定时却设成了过去时间,WordPress 会一直显示「已错过时间表」。

分步解决方案

方法一:校正时区设置(首要)。 进入「后台 → 设置 → 常规」,在「时区」里选择「上海」,或直接选 UTC+8。保存后,再看文章编辑页的发布时间是否与你预期一致。这一步能修正绝大多数「时间对不上」的问题。改完顺手把那些已错过时间表的文章重新排一次期,让状态刷新。

方法二:确认服务器系统时间。 有 SSH 权限时执行:

date

若输出时间明显不对,请让主机商同步 NTP,或自行校对系统时钟。服务器时间错了,任何时区设置都白搭。

方法三:手动触发一次 WP-Cron 验证机制。 访问下面地址,能让 WordPress 立即跑一遍到期的定时任务:

https://www.example.com/wp-cron.php?doing_wp_cron

访问后回到文章列表刷新,看定时文章是否发布。如果这样能发出来,说明时区没问题,问题出在 WP-Cron 触发频率上。

方法四:改用系统级计划任务(推荐给低访问量站点)。 先在 wp-config.php 中关闭内置触发:

define('DISABLE_WP_CRON', true);

再在服务器上配置系统 cron(Linux 示例,每 5 分钟触发一次):

*/5 * * * * wget -q -O - "https://www.example.com/wp-cron.php?doing_wp_cron" >/dev/null 2>&1

宝塔面板可在「计划任务」里新建「访问 URL」类型任务,地址填上面的 wp-cron 链接,频率设为每 5 分钟,这样即使无人访问也会准时触发,再也不用担心小站访问少而错过发布时间。

方法五:用 WP-CLI 或插件排查定时任务。 有命令行时执行:

wp cron event list
wp cron event run --due-now

也可以在后台安装「WP Crontrol」插件,直观查看有哪些定时事件、下次执行时间,并手动立即执行,快速定位是不是任务本身丢了。

常见踩坑点

  1. 时区设成 UTC 却按本地时间定发布点,文章早了或晚了几个小时。
  2. 以为 WordPress 定时发布是精确到秒,其实受 WP-Cron 触发影响,通常有几十分钟误差。
  3. 关闭了内置 WP-Cron 却没配系统计划任务,定时文章永远不发。
  4. 缓存主机屏蔽了 wp-cron.php,导致任务请求被丢弃。
  5. 系统时间不准,改时区也没用。
  6. 用「已发布」改回「定时」时,误把它设成了过去时间,WordPress 会卡在计划状态不执行。
  7. 装了缓存插件后未排除 wp-cron 路径,任务被缓存挡下。

总结

WordPress 定时文章不发布,根子在「时区」和「WP-Cron 触发」两件事上。先把「设置 → 常规」的时区改为上海(UTC+8),再确认服务器系统时间正确,然后通过访问 wp-cron.php 或运行 wp cron event run --due-now 验证机制是否正常。低访问量的站点最好关掉内置触发、改用系统计划任务,才能保证准时发布。按这个思路排查,WordPress 定时文章不发布的问题基本都能解决,定时发布也能重新变得可靠,不必再每天守着时间手动刷新。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。