WordPress 定时发布失败怎么办?Missed Schedule 和 WP-Cron 排查顺序

文章明明已经设置了定时发布,到了时间却没有发出去,后台还显示“已计划”“future”,有些站点甚至会出现 Missed Schedule。这个问题很容易被误会成文章没保存好,其实多数时候是 WordPress 的计划任务没有被可靠触发。

如果你的网站需要稳定定时发布文章,只靠默认 WP-Cron 有时并不够。尤其是访问量不高、缓存规则比较重、或者安全插件比较严格的网站,更容易出现到点不发布的情况。

WordPress 定时发布失败错过计划任务示意图
WordPress missed schedule 排查路线图

先搞清楚:WordPress 定时发布靠什么触发

WordPress 的定时发布不是系统后台一直守着时间点。默认情况下,它依赖 WP-Cron:当有人访问网站时,WordPress 顺便检查有没有该执行的计划任务。

这就带来一个现实问题:

  • 网站访问少,任务可能没人触发
  • 页面缓存太强,触发机会可能变少
  • 安全插件拦截 wp-cron.php,任务可能跑不起来
  • 主机资源紧张,任务执行可能超时

所以,定时发布失败不一定是编辑器问题,更多时候是计划任务链路不稳定。

1. 先确认文章是不是真的还没发布

不要只看前台有没有出现文章,先进后台确认文章状态。

これらの項目に集中する:

  • 状态是否仍是“计划”或 future
  • 计划时间是否已经过去
  • 时区是否正确
  • 是否被插件改成了草稿或待审核
  • 文章 URL 是否只是被缓存没刷新

如果文章状态已经是 publish,但前台列表没出现,那更可能是页面缓存或列表缓存问题。

如果状态仍是 future,才继续按 WP-Cron 方向查。

2. 检查站点时区是否设置错了

很多定时发布问题,其实是时区造成的误判。

进入“设置 → 常规”,确认站点时区是否是目标地区。例如你要按北京时间发,就不要让站点停在 UTC;如果要按欧洲时间发,也要确认时间显示和计划时间一致。

建议你检查:

  • WordPress 后台显示的当前时间
  • 服务器时间
  • 文章计划发布时间
  • 定时发布插件或自动化工具使用的时区

时区没对齐时,看起来像“没有按时发布”,实际可能是还没到 WordPress 认为的时间。

3. 看 DISABLE_WP_CRON 是否被打开

有些站点为了性能,会在 wp-config.php 里加入:

define('DISABLE_WP_CRON', true)。

这行代码本身不是坏事,但前提是你已经配置了服务器真实 cron。

如果你禁用了 WP-Cron,却没有让服务器定时访问 wp-cron.php,那定时发布、自动更新、邮件任务、插件计划任务都可能受影响。

这是很多“定时发布失败”的核心原因。

4. 低流量站点不要完全依赖访问触发

如果网站访问量不高,默认 WP-Cron 就可能不够稳定。

比如文章设置在凌晨或工作日冷门时段发布,但那段时间没人访问网站,任务就可能延后触发。等有人打开网站时,WordPress 才发现“这个任务早就该执行了”。

这种情况下,最稳的做法是配置服务器 cron,例如每 5 分钟触发一次:

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

或者用主机面板里的 Cron Jobs 定时访问 wp-cron.php.

如果你的网站后台本来就慢,也建议一起看这篇:WordPress 后台打开很慢但前台正常?先按这 7 步排查。后台慢和计划任务堆积有时会同时出现。

5. 排查缓存、CDN 和安全插件拦截

定时发布依赖后台任务,缓存和安全策略不应该拦截它。

重点検査:

  • CDN 是否拦截 wp-cron.php
  • 安全插件是否限制后台请求
  • WAF 是否把 cron 请求当成异常访问
  • 缓存插件是否对后台任务做了过度优化
  • 主机防火墙是否限制本机回环请求

如果你使用了 Cloudflare、LiteSpeed Cache、WP Rocket、安全防火墙插件,要特别留意这些规则。

如果你不确定 Heartbeat 和后台请求之间的关系,可以先看:ハートビートとは?WordPressのバックエンドを遅くし、CPUを急上昇させる理由。它不是 WP-Cron,但两者都属于后台动态任务,排查思路有相似之处。

6. 检查是否有任务执行超时

有些站点不是任务没触发,而是触发后执行失败。

一般的な原因は以下の通り:

  • PHP 执行时间太短
  • 記憶障害
  • データベースのレスポンスが遅い
  • 插件任务太多
  • 备份、扫描、同步任务同时运行

如果计划任务队列里堆了很多失败任务,定时发布也可能被拖慢。

这类问题不要只盯着文章本身,要看整个 WordPress 任务队列是否健康。

7. 最稳方案:禁用访问触发,改用服务器真实 cron

对需要稳定定时发布的网站,我更建议使用服务器真实 cron。

基本思路是:

  1. ある wp-config.php 中关闭默认访问触发
  2. 在服务器或主机面板里添加定时任务
  3. 每 5 分钟访问一次 wp-cron.php
  4. 定期检查计划任务是否正常执行

这样做的好处是:即使网站没人访问,定时发布也能按固定频率被检查。

一张表看懂不同情况怎么处理

現れより可能性の高い原因优先处理
到点后仍是 futureWP-Cron 未触发访问前台测试,检查 cron
后台显示 publish,前台没文章页面缓存未刷新清理缓存和列表缓存
低流量时段经常延迟访问触发不稳定配置服务器真实 cron
所有计划任务都不执行DISABLE_WP_CRON 配置问题检查 wp-config.php
偶发失败任务超时或插件冲突查日志和任务队列

結語

WordPress 定时发布失败,表面上看是文章没有按时发,真正要查的是计划任务有没有被触发、有没有被拦截、有没有执行超时。

如果只是偶尔延迟,可以先检查时区、缓存和插件。如果是长期不稳定,建议直接改成服务器真实 cron,让计划任务按固定频率执行。

对于需要每天稳定发布内容的网站来说,定时发布不是只点一下“计划”就结束了,WP-Cron 的可靠性也要一起管。

一般的な問題

WordPress 定时发布失败一定是插件冲突吗?

不一定。插件冲突只是原因之一,更常见的是 WP-Cron 没有被触发、时区不一致、缓存或安全规则干扰。

文章显示 future 是什么意思?

说明文章仍处于计划发布状态。如果计划时间已经过去但状态没变,就要检查 WP-Cron 是否正常执行。

低流量网站更容易定时发布失败吗?

是的。默认 WP-Cron 依赖访问触发,访问少时任务可能延迟。低流量站点更适合配置服务器真实 cron。

改服务器 cron 会影响网站访问吗?

正常配置不会。它只是定时触发 WordPress 计划任务,反而能让任务执行更稳定、更可控。


お問い合わせ
チュートリアルが読めない?無料でお答えします!個人サイト、中小企業サイトのための無料ヘルプ!
カスタマーサービス WeChat
カスタマーサービス WeChat
電話:020-2206-9892
QQ咨询:1025174874
Eメール:[email protected]
勤務時間: 月~金、9:30~18:30、祝日休み
© 複製に関する声明
この記事はハリーが執筆しました。
終わり
好きなら応援してください。
クドス15 分かち合う
解説 ソファ購入

コメントを投稿するにはログインしてください

    コメントなし