One way to confirm it:
* Schedule a post to publish in five minutes.
* Visit the front-end of your site six minutes later.
* Go to the dashboard. Did the post publish, or does it say “Missed schedule”?
Or use the Crontrol plugin, which seems to check.
WordPress doesn’t use an actual cron job. It uses what’s called a loopback HTTP request. Basically, on a normal pageload, if it finds are events that need to be run, it does an HTTP request back to itself to run these events in its own process. That way, the page can continue to load for the visitor, and the scheduled events can separately get handled (they may take some time, depending).
Alternate cron works by redirecting the visitor back to the same page they requested, then uses the original process to run the events. It’s a little lame/weird, but it’s better than it not working.
If you’re not running multisite, I’m pretty sure you can also set up a proper cron job (to run every one or five minutes or whatever) to run php /path/to/wp-cron.php
, where that’s the wp-cron.php
file in the root directory. (You could also use curl instead to hit that file with its public URL, but if the standard WP cron doesn’t work, then the server can’t do these kinds of loopback requests.)
Being unable to do a loopback request is largely considered a poor configuration. They should probably make sure cron works well on their servers, especially if they host a lot of WordPress sites.