I have found a solution for the problem scheduling posts for some WordPress users. It seems the problem that I have encountered is for those hosted on Windows IIS as a web server. I don’t know that much about IIS, but it is my understanding that when the server “talks” to the WordPress installation it needs to do this via IP address rather than by domain name. When the server is “talking” to itself, this is called localhost. Any commands sent to localhost are only understood if the command is IP based.
I don’t think this is always true. I believe there is a setting the webhost can put in the hosts file or another security setting that will also this localhost communication to occur by domain name.
If anyone with more knowledge of IIS is reading this, please correct me if I am wrong. I want to learn more about how this works but for know am basing my assumptions on logic.
I am also not 100% certain that the two users I have assisted with this problem are hosted on IIS but I believe that they are.
Working Toward a Solution
Scheduled posts in the more recent versions of WordPress rely on communication with two files; wp-cron.php and /includes/cron.php. If WordPress is not communicating properly with these files, the scheduled posts will not occur. When cron.php asks wp-cron.php to do it’s job, it is asking for the file by domain name. The request is not understood or is timed out and the scheduled event does not occur. Instead cron.php needs to make the request via the localhost IP address, which is always 127.0.0.1