On several occasions WordPress posts that I schedule for release fail to publish at the chosen date and time – and sometimes fail to publish at all. I’m on WordPress 3.0 and I know that my wp-cron.php is working ok as I get no warning messages and other plugins on my site use it without issue.
After a bit of searching to find an answer, I came across a simple plugin, called ‘Missed Schedule’, which will periodically run through your posts and publish anything that has gone past its scheduled date. I installed the plugin and it immediately published my problem post.
A word of warning though – the plugin disables cron jobs native in WordPress. You can comment this line out of the plugin code, but if you’re not too sure about doing that why don’t you just do what I did and deactivate the plugin when you don’t need it?
You can find the Missed Schedule plugin here. Update July 2016: The plugin is no longer in the WordPress repository, and so you really do need to consider carefully whether you use it or not in your WordPress site – usually, I advise site owners only to use plugins that are in the WordPress repository, as these are generally more reliable.
Update August 2018: You might want to try the Scheduled Post Trigger plugin. This is a relatively new plugin, which sits in the background of your site, and runs every time a visitor reaches your site. It takes a quick look to see if there are any scheduled posts that have missed their publish time, and publishes them. It does, of course, need a fairly constant flow of visitors to your site, otherwise a missed scheduled post is likely to go unpublished for quite a time.