Al momento de trabajar en un WordPress es muy común el uso de la función de programar un post o programar entradas en WordPress, ya que es algo simple de utilizar, esto funciona para usuarios que terminan la edición de una entrada y necesitan que se publique luego por cualquier razón, se establece una fecha y luego centrarse en otros ajustes en WordPress del sitio. El inconveniente con esta función de WordPress es que algunas veces no se publica de una forma correcta, o incluso no se publica del todo lo cual es bastante problemático para un sitio que necesitaba esta publicación a tiempo.
El que esto suceda es debido a un funcionamiento de WordPress en cuanto a funciones que se llama (CRON) esto ocurre cuando este cron no se ejecuta de forma correcta por cualquiera de las circunstancias que vamos a ver en esta guía, pero así mismo como conocemos que puede fallar, también hay unas formas de contrarrestar esto y solucionar el problema para que no suceda en un futuro. Así mismo como alguno que otro plugin que podemos utilizar para solucionar el problema sin necesidad de tener que utilizar algunos de los métodos que no son del todo amigable para personas que no están habituadas a trabajar con elementos de paneles o agregar códigos cron WordPress.
Tabla de contenidos
- 1 ¿Por qué sucede el error de programación perdida en WordPress?
- 2 ¿Cómo solucionar el error de programación perdida en WordPress??
- 3 Cómo solucionar el error de programación perdida en WordPress sin plugin
- 3.1 Revisa los ajustes de la zona horaria en WordPress
- 3.2 Comprueba que funciona el cron de WordPress
- 3.3 Aumenta el límite de memoria
- 3.4 Configura el vaciado de las cachés
- 3.5 Cambia el cron de WordPress por un cron alternativo de WordPress
- 3.6 Crea un cron real en tu hosting
- 3.7 Crear un cron real con WP-Cli
- 4 Cómo solucionar el error de programación perdida en WordPress con plugin
- 5 Conclusión
¿Por qué sucede el error de programación perdida en WordPress?
Este error por más que genere incertidumbre y sea un problema para algunas ocasiones tanto para aquellos que se dedican a publicar entradas como aquellos comerciantes que necesitan ejecutar un cambio de precio programado, pareciera que es muy complicado, sin embargo, resulta ser bastante sencillo de identificar y los motivos son bastante variados igualmente hablaremos de estos o los más comunes en esta guía.
Zonas horarias disparejas
Este tipo de error puede parecer algo poco efectivo para solucionar el problema; sin embargo, en muchas ocasiones este tipo de errores de programación de entradas que no se publican tienen más que ver con un problema relacionado a la zona horaria que no corresponde a la actual de la tienda WordPress. Muchas ocasiones hemos visto usuarios publicando según una hora y fecha especifico cuando en su CMS WordPress está configurada otra zona horaria completamente diferente a la que se encuentra el administrador.
Por lo tanto, este contenido no se visualiza directamente cuando es previsto sino, por el contrario, cuando se cumple el tiempo y hora de esa zona horaria o bien se produce un error de programación perdida.
Luego de una actualización o migración
Si por algún motivo hemos realizado una migración reciente o una actualización masiva de plugins y temas que tenemos en nuestro WordPress incluso tema hijo WordPress es siempre una buena idea el reajustar ciertas configuraciones de nuestro cron de panel. Esto ocurre por qué ciertos plugins trabajan con algunas opciones de automatización lo que hace que entren en conflicto con las programaciones que tenemos ya establecidas, esto es mucho más común de ver si ya tenemos o teníamos funcionando de forma correcta nuestras entradas programadas y dejaron de funcionar.
Memorias PHP bajas
Otra de las razones más comunes por las que sucede este tipo de mensajes o errores en nuestros WordPress es por la falta de memoria en nuestros servidores, esta memoria hay que recordar que es la que necesitan no solo los programas o las funciones de WordPress para trabajar, sino todo nuestro sitio, esto quiere decir que mientras tengamos más plugins o funciones en nuestro tema vamos a necesitar aumentar memoria PHP WordPress, ya que se necesita más memoria PHP para cumplir con lo requerido para cada función y plugin.
Cache del sitio
En otro, pero no en la mayoría de los casos este tipo de problemas se presenta por un problema directamente con la caché del sitio, ya sea a nivel del propio CMS como la cache a nivel del servidor, por lo que hay que entender igualmente muy bien el porqué surge este problema. Si en nuestro sitio tenemos una caché estática, esta se refresca por cada visita al sitio esto quiere decir que si no hay visitas en el mismo, ya sea de cualquier tipo (comentarios, entradas, valoraciones, etc.) sin contar las visitas reales estas son las que regeneran y van actualizando la caché del sitio.
Si bien la programación se hace directamente dentro de nuestro backend podríamos pensar en que no tiene nada que ver con que una persona ingrese al sitio el que se publique, sin embargo, esta programación forma parte de una aplicación propia de WordPress llamada WP Cron, en la que necesita esta interacción para que esté funcionando, de lo contrario este no se ejecutara y simplemente pasara a mostrar el error de programación perdida.
Wp Cron y su función
Como lo hemos comentado en el punto previo tenemos la función de Wp Cron dentro de nuestros WordPress este posee algunas funciones específicas entre las cuales destacamos la siguiente:
- Crear copias de seguridad programas mediante la función de algún plugin instalado.
- Realizar una limpieza de archivos temporales del WordPress.
- Verificas para notificar sobre el espacio en el disco.
- Realizar tareas básicas de mantenimiento en WordPress.
- Realizar funciones de verificación de actualizaciones del core de WordPress, temas y plugins.
- Último pero no menos importantes, ejecutar tareas programadas de cualquier tipo, creadas por nosotros o plugins.
Esto puede suceder inclusive por la caché de Cloudflare en caso de estar trabajando con un CDN WordPress en nuestro sitio.
¿Cómo solucionar el error de programación perdida en WordPress??
Este tipo de error al igual que muchos otros que podemos evidenciar en WordPress tienen una solución, de lo contrario WordPress no fuese uno de los CMS más utilizados, y especialmente este error es bastante sencillo de corregirse, en los próximos puntos vamos a ver tanto como solucionar este error con plugins para aquellas personas que no quieran hacer este ajuste manualmente y prefieran el uso de este mismo para ahorrar tiempo, como también verificarlo y solucionarlo manualmente mediante el uso de cualquiera de los puntos que vamos a ver a continuación.
Cómo solucionar el error de programación perdida en WordPress sin plugin
Como hemos mencionado previamente este tipo de errores relacionados con el Wp Cron de WordPress podemos solucionarlo por medio de varias formas, las cuales vamos a detallar una a una a continuación.
Revisa los ajustes de la zona horaria en WordPress
El primer punto tal como se comentó en las razones es uno de los principales motivos por el cual se puede dar este error, el ajuste de las zonas horarias en WordPress forma parte de la administración del sitio. Tener de forma predeterminada la fecha en formato UTC es un error, ya que esta no va a ser precisa y no va a permitir que trabaje de forma fluida no solo el cron de WordPress sino también algunas funciones relacionadas con las fechas en el sitio.
La mejor forma de solucionar este error es seleccionar exactamente la zona horaria que queremos tomar, más allá de seleccionar el País, debemos seleccionar el sitio donde nos encontramos, ya sea la ciudad o región especifica que comprende nuestra zona horaria para que WordPress cambie de forma automática dependiendo de los cambios horarios de invierno y verano en caso de ser necesario.
Para realizar este cambio directamente hay que hacer el ajuste dentro del WordPress, para esto debemos ingresar en nuestros ajustes del WordPress específicamente en los ajustes generales, donde tenemos la configuración horaria, aquí debemos asignar como hemos comentado previamente una zona específica en la que nos encontramos, de esta forma se tomara de forma correcta.
Una vez tenemos esto cambiado podemos verificar intentando nuevamente la publicación, en caso de que no se solucione podremos seguir con los siguientes pasos.
Comprueba que funciona el cron de WordPress
Si bien esta no es una solución directamente nos puede ayudar a determinar si el problema viene de un código cron mal configurado o que directamente no esta bien escrito en caso de haberlo hecho de forma manual en nuestras instalaciones, realizar esta comprobación es bastante sencillo, lo que debemos hacer es ingresar a la URL directamente que vamos a proporcionar, una vez que ingresamos a ella se activaran de manera forzosa los trabajos cron que tengamos en nuestro sitio para de esta forma validar que estén configurados de forma correcta.
https://dominio.com/wp-cron.php?setcronjob
Debemos recordar que tenemos que cambiar el dominio por el real que estamos utilizando de lo contrario esto no funcionara de forma correcta, también debemos estar logueados en el administrador del sitio.
Aumenta el límite de memoria
Otra de las causas más comunes de este tipo de errores es que no tenemos memoria suficiente para ejecutar todo lo referente al funcionamiento base del WordPress y además de eso ejecutar las tareas programadas de cron en nuestros paneles. Por lo que vamos a aumentar este límite de memoria para poder tener más y que esto no presente un problema para la ejecución del mismo.
Existen varias formas de hacerlo, ya sea por medio del archivo wp-config ubicado en Administrador de archivos > Public_html > Dominio > archivo wp-config, y en él agregamos el siguiente código:
define('WP_MEMORY_LIMIT', '768M');
O bien también podemos realizar este ajuste por medio de nuestro Wepanel, donde simplemente buscando en el mismo la opción de PHP WordPress, tendremos las opciones recomendadas para modificar aspectos del PHP, en este caso los parámetros. El que vamos a modificar sería el de wp memory limit; sin embargo, ya que estamos aquí podemos cambiar los que necesitemos para proporcionar más memoria a nuestra web.
Configura el vaciado de las cachés
Otra alternativa que tenemos es programar con nuestros plugins de caché un vaciado de la misma de forma programada, la mayoría de los plugins de cache WordPress ofrecen esta alternativa directamente en las configuraciones del mismo, es por esto que cada plugin posee su propia configuración y método para vaciado automático del mismo, llegando algunos a tener esta opción solo pagando una versión más avanzada del mismo. Algunos de los mejores plugins que podemos encontrar están en nuestra guía de plugins de caché.
Cambia el cron de WordPress por un cron alternativo de WordPress
No es muy conocido y tampoco muy popular, sin embargo, en caso de que siga sin funcionar nuestro cron lo mejor que podemos hacer es tratar con otras alternativas para poder intentar solucionar el problema lo más pronto posible, para esto podemos activar un cron alternativo que posee WordPress y sustituirlo con el cron actual del mismo, ya que en ocasiones esto funciona para resolver el problema.
Los pasos para activar este cron serían desactivar primero el cron activo de WordPress y luego activar el cron alternativo, esto podemos hacerlo con unas líneas de código que agreguemos en nuestro archivo wp-config, este como ya hemos visto en un punto previo esta ubicado en nuestro panel en Administrador de archivos > Public_html > dominio > archivo wp-config.
define('DISABLE_WP_CRON', true); define('ALTERNATE_WP_CRON', true);
Al agregar estos dos códigos estaremos desactivando el cron principal y así mismo activando el alternativo, si bien este método agrega ciertos elementos a las URL, solo lo hará cuando se tenga que ejecutar una acción como es el caso de una tarea programada, esta es una de las alternativas en caso de que no tengamos acceso total para poder crear un cron de forma manual en el hosting web, sin embargo, igualmente vamos a ver los pasos para crear el cron de forma manual y poder pasar por alto este paso en caso de que no nos llame mucho la atención el tener un aspecto negativo como es un cambio sutil en la URL al momento de ejecutarse la acción.
Crea un cron real en tu hosting
Para crear una tarea cron en nuestro panel vamos a tener que ingresar al área correspondiente, para ello simplemente buscamos en nuestro wepanel la palabra cron, esto nos va a permitir ver la aplicación de panel con la que vamos a crear dicho cron.
Luego de ingresar debemos seleccionar una de las dos opciones ya sea el modo básico o el modo experto, en este caso vamos a seleccionar el modo básico para poder comprender mejor el funcionamiento y que podamos realizar las pruebas necesarias. Vamos a seleccionar cada cuanto tiempo necesitamos que se active dicho cron, con la primera opción que tenemos disponible junto con ingresar a este método sencillo. Luego de esto vamos a tener un espacio para agregar un texto descrito bajo el nombre de comando, aquí debemos agregar nuestro cron general que activa todas las tareas que estén pendientes. En este caso si agregamos un tiempo muy bajo podríamos saturar nuestro servidor por la cantidad de peticiones que hagamos, lo mejor es dejar un tiempo no tan bajo pero a la vez no tal alto.
El dato que debemos agregar como comando es el siguiente:
wget -q -O - https://dominio.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Al agregar este no se terminará este paso, ya que hemos agregado el cron en nuestro panel, pero el WordPress no sabe que debe tomar esté en lugar del que esta programado en WordPress para ejecutarse, es por esto que ahora debemos ingresar nuevamente a nuestro archivo wp-config, que como hemos indicado previamente en varias oportunidades dentro de esta guía esta ubicado en Administrador de archivos > Public_html > dominio > archivo wp-config.
Una vez dentro debemos ver el siguiente código y hacer una modificación:
define('DISABLE_WP_CRON', false);
En caso de encontrarlo debemos cambiar el false por true, y en todo caso que no lo tengamos agregamos el siguiente:
define('DISABLE_WP_CRON', true);
De esta forma tendremos creado el cron y deshabilitado el cron principal de WordPress.
Crear un cron real con WP-Cli
Otra de las opciones que tenemos es hacer uso de WP-Cli para poder asignar el comando de consola que agregue esta tarea cron que hemos agregado recientemente, pero en cuanto a comandos, para ello y si tenemos alguna duda podemos ver nuestra guía sobre que es Wp-Cli, una vez que ya conocemos que es podemos proceder en agregar el siguiente comando:
*/10 * * * * cd /var/www/dominio.com/htdocs; wp cron event run --due-now > /dev/null 2>&1
En el código se ha utilizado que se aplique o se ejecute cada 10 minutos por el inicio de */10 igualmente este se puede cambiar por el que necesitemos ya sea */5 para cinco minutos o bien aumentar el tiempo que necesitemos. Así mismo como modificar el dominio que se esta ejecutando.
Cómo solucionar el error de programación perdida en WordPress con plugin
Llegados a este punto es donde, en caso de no haberlo solucionado o no querer hacerlo por medio de códigos o métodos manuales podemos utilizar alguno de los plugins ya existentes que nos pueden ayudar a facilitarnos el trabajo de solucionar un cron que no se ejecuta. Estos ofrecen varias posibilidades adicionales, entre la gran variedad que hay actualmente destacamos los más útiles y sencillos de utilizar.
Plugin Scheduled Post Trigger
Este plugin es singularmente fácil de utilizar, simplemente debemos instalarlo y activarlo para que comience a funcionar, lo que hace específicamente es que cada vez que alguien ingresa al sitio o se encuentra en el área de administración hace una verificación de crons o tareas programadas disponibles, en caso de encontrar alguna este plugin fuerza la ejecución de la misma, igualmente posee algunos aspectos que tenemos que configurar para que este plugin funcione a la perfección.
- Configurar la zona horaria como lo hemos hecho en pasos anteriores
- Si el problema es relacionado con la caché este plugin no realizará el ajuste correcto, para ello debemos ver el punto relacionado con la caché.
Este plugin puede ser bastante útil, pero si pasamos sobre estos ajustes a configurar puede ser aún mejor. Hay que tener en cuenta que si nuestros clientes son numerosos vamos a tener que estar consultando la web en caso de que la cantidad de peticiones supere las permitidas por WordPress y el sitio tenga caídas inesperadas.
Plugin Missed Scheduled Posts Publisher
Otra muy buena alternativa es este plugin que directamente nos va a ayudar a verificar cada 15 minutos, se encuentre o no personas en el sitio si hay una tarea programada que no se ha ejecutado, en igual caso que el plugin anterior este no necesita configuración alguna simplemente es instalar el mismo y ya esta funcionando por lo cual resulta bastante sencillo y práctico para cualquier tipo de usuario.
Plugin WP Missed Schedule
Este plugin se encuentra en GitHub WordPress, para descargarlos debemos hacer clic en el icono verde que indica code y desplazarnos a la última opción que hace referencia a la descarga del zip de este mismo.
https://github.com/sLaNGjI/wp-missed-schedule
Una vez que lo tengamos descargado, el proceso de instalación sería como cualquier otro, y una vez que lo tenemos activo en nuestro WordPress al igual que los otros dos que hemos visto este no requiere configuración; sin embargo, sí que posee algunas opciones para ver, estas se encuentran ingresando a nuestra lista de plugins activos, una vez ingresamos a esta vamos a donde esta dicho plugin.
Una vez dentro de este vamos a ver la opción de Miss, esta opción nos va a permitir el poder ver cuál proceso o tarea programada no se ha ejecutado o se ha perdido como el propio nombre lo indica aunque igual esta página es meramente informativa, ya que solo debemos esperar a que el plugin realice su ejecución programada para que se ejecute el cron.
Conclusión
El programar publicaciones o cambios de precios es algo fundamental para los usuarios que quieren mantener sus sitios actualizados y ofreciendo siempre algo nuevo a sus clientes, es por esto que aunque parezca una tarea sencilla en algunos casos esto suele complicarse con errores de los que no somos conscientes. Tanto al momento de verificar como al buscar una solución debemos intentar todo lo posible para solucionarlo, ya que si no se ejecutan las tareas programadas más allá de un error fatal es una falla en las mejoras que posee WordPress para los usuarios y administradores del sitio.
Realizando los pasos que hemos visto en esta guía podemos decir que en muchos de los casos el solucionar este problema es una tarea sencilla, aunque en algunos sea un poco más complicados que en otros los pasos son bastante sencillos de comprender y podremos dar una solución a este problema que se nos presenta.
También te puede interesar:
- ERR_NAME_NOT_RESOLVED
- XML-RPC en WordPress
- Wiki WordPress
- 2FA WordPress
- WPO WordPress
- WP_Query WordPress
- Ocultar titulos en WordPress
¿Te ha resultado útil este artículo?
Equipo de soporte WordPress y WooCommerce en Webempresa.