Update: Solution found, as described here.
I’ve had issues with WordPress’ scheduler for post since it arrised and am still searching for solution for some of my sites. The problem is known since WordPress Version 2.7, where handling of scheduled post was implemented differently.
Interestingly, it seems that not all suggested fixes are working in all cases. E.g. on one site replacing the cron.php and wp-cron.php files worked fine, whilest for another this does not. So I decided to at least write about my search here, in the hope I can lead some others to solutions. But in general, I would appreciate much more if the core team of WordPress would address the issues (now after almost 4 versions of it’s existance) or write about it and it’s origins.
As a Background: I do have some experience in programmig PHP applications, but I’m not a server administrator and therefore reach my limits when this issue touches questions about server settings, PHP configuration etc.
I have sites on various servers and see different situations on two hosting providers: One where scheduling of wordpress posts works just fine and one where it’s a real issue.
- Replace your WordPress cron-job files (reponsible for timed processes) with old versions from WordPress 2.5.6:
Download WordPress 2.6.5 and replace the files wp-cron.php and /wp-includes/cron.php with the old versions.
I have one installation where that worked fine and solved the issue. On another one, hosted on a different machine, but with the same provider, this does not solve it.
Read about this method here.
- Deactivate HTTP Transport methods using the 123 HTTP Transport plug-in:
Interesting approch, as from WordPress version 2.7 onwards, multiple ways to trigger the scheduling tasks are tried. This plug-in allows you to deactivate those in use on your hosting account/WP installation combination.
On the more problematic site I ovserved an interesting behaviour of this plug-in: Scheduled posts first showed as missing and approximately a minute later they went online. This happened without deactivating certain methods in the plug-in settings.
Furthermore, I also observed that the plug-in ‘rescued’ previously stuck posts that did not go online as scheduled.
- Another method I’ve not tried, yet, is suggested by the user fernandot on the WordPress support forum here.
- And a last approach I read about suggests to add the following setting to your wordpress wp-config.php file: define(‘ALTERNATE_WP_CRON’, true);
More about it can be found here.
UPDATE: In the one difficult case this last approach worked. In the hoster’s specific case, PHP runs as a FastCGI application and as a FTP user. This workaround seems to solve it, though I would prefer to have other options at hand.
Ok, so much for now. As soon as I learn more about it, I’ll be updating this post (just done so, see above). But again, I wish the WordPress people, who’s work I highly appreciate, would address the issues or provide some explanations and information.