| 开发者 | snagbane |
|---|---|
| 更新时间 | 2026年9月25日 06:30 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
DISABLE_WP_CRON set is recognised as the healthy setup it is, rather than reported as broken because WordPress is not the one spawning the request.
What you get
/wp-content/plugins/snagbane-cron-monitor.It will tell you whether the cause is cron. A post scheduled for a time that has passed and never went live means WordPress never got to run its publishing task, and this plugin shows you whether cron has been running at all, when it last ran, and which tasks were missed. If cron is running fine and the post still did not publish, the cause is elsewhere and you have ruled out the most common culprit. Pro goes further and tells you which specific thing is blocking cron.
No, and that is the specific thing this plugin exists to get right. A stale heartbeat is only reported as "Not working" when the site actually had recent visitors and cron still did not run. Otherwise it is reported as "Running late", which is a much less alarming and much more accurate thing to say.
No. It only observes. It never reschedules, disables or modifies another plugin's events. The one thing it schedules is its own five-minute heartbeat, which does nothing except give WP-Cron a predictable reason to tick.
Yes, and it is detected. With that constant set, the verdict switches to checking whether your server cron is actually reaching wp-cron.php, and says so plainly either way instead of reporting the healthiest possible setup as a fault.
Every individually scheduled task this plugin watched, whether it ran or was missed, with how late it was. Not just the overall heartbeat. Thirty days on every install, and the screen shows all of it.
No. Naming the plugin or theme responsible is a Pro feature. The free log shows that a task ran or was missed, and when.
No. A front-end page view reads one option and, at most once a minute, writes it back. Everything else happens inside the WP-Cron request, which is a background request already.
get_sites() defaults to 100 and has no "all" value, so every site past the hundredth silently had no tables and no scheduled events -- and kept its table forever on deletion. Activation now covers 200 sites inline and every site beyond that sets itself up on its first load; deletion pages through the whole network.Plugin URI header pointed at this plugin's own wordpress.org listing page, which WordPress.org's header requirements disallow. Now points to cronmonitor.snagbane.com.Description was over WordPress.org's length limit for that field, as was this readme's short description.License from GPL-2.0-or-later to GPLv2 or later, matching WordPress.org's own documented example.