WordPress no publica los posts a la hora programada

Logo de WordPress

Este es un howto con la solución, a un problema que me ha costado un poco resolver en un WordPress que administro. Se publicaban los posts en otra hora distinta a la programada. Además, si le daba a publicar inmediatamente, se quedaba como programado para publicar, y se publicaba dos horas más tarde.

No he podido encontrar casi información por Internet, al final encontré el porqué pasaba esto, y aquí que estoy compartiéndolo por si alguien lo necesita también 😉

Porqué WordPress no publica los posts a la hora exacta

WordPress necesita saber qué hora: cuál es la hora del sistema operativo, la hora real del mundo, y la hora local en que el bloggero escribe y quiere publicar el post. Si estas cosas no las tiene claras, entonces WordPress no publica exactamente a la hora que corresponde.

Solución para que se publiquen a la hora exacta los posts

Bien sencillo, tenemos que ir primero a configurar correctamente la hora de WordPress. Para esto tenemos que ir primero al panel de control, a la sección de Ajustes > Generales, a la zona donde pone Zona horaria:

WordPress, configurando la hora.

¡Ojo! No conviene usar las compensaciones manuales del desplegable, así que tienes que elegir la capital de tu país.

Por otro lado hay que configurar en el sistema operativo del servidor la hora correcta igualmente. En un servidor clásico GNU/Linux clásico tendremos que configurar entonces el fichero /etc/localtime para que apunte al fichero de hora local que le corresponde. En una distribución derivada de Debian como Ubuntu, Ubuntu Mate, etc.. debemos de ver algo parecido a lo de la imagen siguiente:

Configurando la hora local en un servidor GNU/Linux.

Si listamos el directorio /usr/share/zoneinfo/ veremos todas las zonas disponibles. Tendremos entonces que encontrar entonces la ruta exacta para hacer el link y hacer lo siguiente desde línea de comandos. En el caso de Madrid los comandos a ejecutar serían los siguientes:

sudo mv /etc/localtime /etc/localtime.bak
sudo ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime

Esto último, en el caso de ser un servidor no administrado por nosotros, habrá que pedirlo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *