La respuesta es aparentemente SÍ, debería preocuparme . Después de algunas investigaciones, descubrí que la advertencia parece estar relacionada con configuraciones incorrectas en el servidor en el que está alojado WordPress (es decir, un problema con mi servidor, no con WordPress).
Configuraciones erróneas comunes:
- El servidor no tiene DNS, por lo que no puede descubrir quién es "example.com", aunque sea él mismo.
- Los administradores del servidor, en un intento equivocado de seguridad, han bloqueado las solicitudes de "bucle invertido", por lo que en realidad no pueden volver a llamar.
- El servidor está ejecutando algo llamado "mod_security" o similar, que bloquea activamente la llamada debido a la configuración de muerte cerebral.
El problema en mi caso fue en realidad causado por mi firewall (pfSense), que tiene "Desactivar la reflexión NAT" de forma predeterminada (aparece como razón común # 2).
En el servidor en sí, intenté comunicarme con telnet, y el resultado fue el siguiente:
$ telnet external.server.hostname.com 19235
Intentando XXX.XXX.XXX.XXX ...
telnet: no se puede conectar al host remoto: se agotó el tiempo de espera de la conexión
Para solucionar esto, tuve que desmarcar Desactivar la reflexión NAT en mi firewall. En mi caso, esto estaba en la interfaz web de pfSense en Sistema-> Avanzado-> Firewall / NAT.
Fuente: http://forum.pfsense.org/index.php?topic=3473.0
Ahora puedo conectarme a mí mismo (en el servidor) a través del cortafuegos:
$ telnet external.server.hostname.com 19235
Intentando XXX.XXX.XXX.XXX ...
Conectado a external.server.hostname.com.
El carácter de escape es '^]'.
y ya no recibo la advertencia de PHP sobre wp-cron.
Me di cuenta de esto después de leer esta respuesta detallada sobre wp_cron
, explicando cómo funciona.
Respuesta corta: agregue esto a las definiciones en su archivo wp-config.php: define ('ALTERNATE_WP_CRON', verdadero);
Respuesta realmente larga, para masoquistas: las publicaciones programadas no están ahora, y nunca han sido, "rotas". Los desarrolladores de WordPress no pueden arreglarlo porque no hay nada que arreglar.
El problema radica en el hecho de que su servidor, por alguna razón, no puede ejecutar correctamente el proceso wp-cron. Este proceso es el mecanismo de sincronización de WordPress, maneja todo, desde publicaciones programadas hasta el envío de pingbacks a pings XMLRPC, etc.
La forma en que funciona es bastante simple. Cada vez que se carga una página de WordPress, internamente WordPress comprueba si necesita activar wp-cron (comparando la hora actual con la última vez que se ejecutó wp-cron). Si necesita ejecutar wp-cron, entonces intenta hacer una conexión HTTP de vuelta a sí mismo, llamando al archivo wp-cron.php.
Esta conexión a sí misma está ahí por una razón. wp-cron tiene mucho trabajo por hacer, y ese trabajo lleva tiempo. Retrasar que el usuario vea su página web mientras hace un montón de cosas es una mala idea, por lo que al hacer esa conexión de vuelta a sí mismo, puede ejecutar el programa wp-cron en un proceso separado. Dado que WordPress en sí no se preocupa por el resultado del wp-cron, solo espera un segundo, luego vuelve a mostrar la página web para el usuario. Mientras tanto, wp-cron, que se ha lanzado, hace su trabajo hasta que finaliza o se queda sin tiempo de ejecución.
Esa conexión HTTP es donde fallan algunos sistemas mal configurados. Básicamente, WordPress está actuando como un navegador web. Si su sitio era
http://example.com/blog , entonces WP llamará a
http://example.com/blog/wp-cron.php para comenzar el proceso. Sin embargo, algunos servidores simplemente no pueden hacer eso por alguna razón. Entre las posibles razones:
- El servidor no tiene DNS, por lo que no puede descubrir quién es "example.com", aunque sea él mismo .
- Los administradores del servidor, en un intento equivocado de seguridad, han bloqueado las solicitudes de "bucle invertido", por lo que en realidad no pueden volver a llamar.
- El servidor está ejecutando algo llamado "mod_security" o similar, que bloquea activamente la llamada debido a la configuración de muerte cerebral.
- Algo más.
El punto es que, por cualquier razón, su servidor web está configurado de una manera no estándar que impide que WordPress haga su trabajo. WordPress simplemente no puede arreglar eso.
Sin embargo, si tiene esta condición, hay una solución alternativa. Agregue esto a to define en su archivo wp-config.php:
define ('ALTERNATE_WP_CRON', verdadero);
Este método alternativo utiliza un enfoque de redirección, que hace que el navegador de los usuarios obtenga una redirección cuando el cron necesita ejecutarse, de modo que regresen al sitio inmediatamente mientras cron continúa ejecutándose en la conexión que acaban de desconectar. Este método es un poco dudoso a veces, por lo que no es el predeterminado.
Fuente: http://wordpress.org/support/topic/scheduled-posts-still-not-working-in-282#post-1175405
Como se indica en esta excelente y detallada publicación, si no tiene control sobre la configuración de sus servidores o, si corresponde, el entorno, se debe poner una solución alternativa
define ('ALTERNATE_WP_CRON', verdadero);
en su archivo wp-config.php.
allow_url_fopen
configurado en ON?