SmythSys IT Consulting

Error en WordPress: programación perdida

Hoy vamos a intentar explicar un error de WordPress que surge en determinadas ocasiones, si se dan varios casos, y que puede resultar extraño.

Caso: Hemos programado una publicación de WordPress, o una oferta de WooCommerce, esperamos que se publique como siempre pero no aparece. Cuando entramos en el backend de vuestra tienda, aparece la publicación con una aviso en rojo: Programación perdida.

Causa: ¿Por qué sucede esto? Vamos a intentar explicarlo.
Cuando programas una entrada en WordPress, lo que hace el sistema es usar un pseudo-cron llamado wp-cron.php. Como no puede modificar el cron del servidor, deja las tareas pendientes hasta que se cargue un script, hasta que se carga página (porque un cliente ha visitado la web). Es decir, si no se cargan las páginas no se ejecutan las tareas programadas.

¿En qué casos no se cargan las páginas? Si se dan algunas de estas condiciones:

  1. No ha habido visitas a tu página en ese periodo de tiempo. Pero tu página tiene que tener pocas visitas para eso.
  2. Tienes un sistema de caché en tu web (como W3 Total Cache) que tiene caché de objetos. En ese caso, cuando los clientes solicitan visitar tu página, el sistema les proporciona un html generado, no la página php que dispara el cron wp-cron.php. El cliente visita la página, pero, al ser cacheada no dispara la tarea programada.

Soluciones:

Tienes tres soluciones posibles.

  1. En teoría podemos desactivar en los sistemas de caché la caché de objetos. En W3 Total caché está en Rendimiento>Objet Cache.   Pero nosotros lo teníamos desactivado y aún así no saltó el cron.
  2. Si pasa muy a menudo, y tienes acceso de gestión por ssh, o por panel al cron del servidor, puedes editar el cron del servidor para llamar (con fetch) cada cierto tiempo al wp-cron.php. (por la ruta http://www.tuweb.es/wp-cron.php?doing_wp_cron) . Con el tiempo que quieras, por ejemplo cada 15 minutos.
    Cómo hacerlo depende de cada servidor y el acceso que tengas.
  3. Con un plugin. Tienes plugins como Improved Cron, WP-Cron Control,  o WP-Crontrol.  Algunos lo gestionan ellos, otros puedes poner un hook y gestionar tu cuando quieres que se ejecute el código.

 

 

Deja un comentario

Resumen de nuestra Política de Privacidad

  • Responsable: SmythSys IT Consulting SLNE.
  • Finalidad: Gestionar y moderar los comentarios.
  • Legitimación: Necesitas dar tu consentimiento para publicar un comentario.
  • Destinatarios: Tus datos se alojan en los servidores de OVH.
  • Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la dirección del responsable (en nuestra política de privacidad).