答案显然是YES, I should worry. 经过一些研究,我发现这个警告似乎与WordPress所在服务器上的错误配置有关(即,我的服务器有问题,而不是WordPress)。
常见错误配置:
服务器没有DNS,所以它无法识别“example.com”是谁,即使它本身就是服务器管理员在一次错误的安全尝试中,阻止了“环回”请求,因此它实际上无法回拨自己服务器正在运行一种称为“mod\\u security”或类似的程序,该程序会由于脑死亡配置而主动阻止调用我的问题实际上是由我的防火墙(pfSense)引起的,which has "Disable NAT reflection" by default (列为常见原因#2)。
在服务器本身上,我尝试使用telnet联系自己,结果如下:
$ telnet external.server.hostname.com 19235
Trying XXX.XXX.XXX.XXX...
telnet: Unable to connect to remote host: Connection timed out
要解决这个问题,我必须取消选中
Disable NAT reflection 在我的防火墙上。在我的例子中,这是在系统->高级->防火墙/NAT下pfSense的web界面中
来源:http://forum.pfsense.org/index.php?topic=3473.0现在,我可以通过防火墙与自己(在服务器本身上)进行连接:
$ telnet external.server.hostname.com 19235
Trying XXX.XXX.XXX.XXX...
Connected to external.server.hostname.com.
Escape character is \'^]\'.
我不再收到关于wp cron的PHP警告。
我读了之后就明白了this detailed answer regarding wp_cron
, explaining how it works.
Short answer: 将其添加到wp配置中的定义中。php文件:define(\'ALTERNATE\\u WP\\u CRON\',true);
Really long answer, for masochists: 预定的帖子现在没有,也从来没有被“破坏”。WordPress的开发人员无法修复它,因为没有什么需要修复的。
问题在于您的服务器由于某种原因无法正确执行wp cron进程。这个过程是WordPress的计时机制,它处理从预定的帖子到发送pingback到XMLRPC ping等所有事情。
它的工作方式非常简单。每当加载WordPress页面时,WordPress会在内部检查是否需要启动wp cron(通过比较当前时间和上次运行wp cron的时间)。如果它确实需要运行wp-cron,那么它会尝试通过调用wp-cron建立回自身的HTTP连接。php文件。
这种与自身的联系是有原因的。wp-cron有很多工作要做,这项工作需要时间。延迟用户看到他的网页,而它做了一大堆事情,这是一个坏主意,因此通过将该连接恢复到自身,它可以在单独的进程中运行wp cron程序。由于WordPress本身并不关心wp cron的结果,因此它只需等待一秒钟,然后返回到为用户呈现网页。与此同时,wp-cron已经启动,它会一直工作到完成或执行时间用完为止。
HTTP连接是一些配置不当的系统出现故障的地方。基本上,WordPress就像一个web浏览器。如果您的站点http://example.com/blog, 然后WP将呼叫http://example.com/blog/wp-cron.php 启动流程。然而,由于某些原因,一些服务器根本无法做到这一点。可能的原因包括:
服务器没有DNS,所以它无法识别“example.com”是谁,即使它本身就是服务器管理员在一次错误的安全尝试中,阻止了“环回”请求,因此它实际上无法回拨自己服务器正在运行一种称为“mod\\u security”或类似的程序,该程序会由于脑死亡配置而主动阻止调用还有别的关键是,无论出于何种原因,您的web服务器都是以某种非标准方式配置的,这会阻止WordPress完成其工作。WordPress根本无法解决这个问题。
但是,如果您有这种情况,则有一种解决方法。将其添加到wp配置中的to定义中。php文件:
define(\'ALTERNATE_WP_CRON\', true);
此替代方法使用重定向方法,这使得用户浏览器在cron需要运行时获得重定向,以便他们在cron继续在刚断开的连接中运行时立即返回站点。这种方法有时有点不确定,这就是为什么它不是默认的。
来源:http://wordpress.org/support/topic/scheduled-posts-still-not-working-in-282#post-1175405
正如这篇精彩而详细的文章所述,如果您无法控制服务器配置或环境(如果适用),那么解决方法是
define(\'ALTERNATE_WP_CRON\', true);
在wp配置中。php文件。