Cómo Programar Tareas Cron en WordPress

programar tareas cron en WordPress

Última actualización:

Cron es un servicio de servidor Linux que generalmente se usa para programar comandos o scripts en un servidor para que se ejecuten en segundo plano.

En este post te mostramos paso a paso como programar tareas cron en WordPress.

Tabla de contenidos

Introducción

En WordPress tenemos nuestro propio cron llamado WP-Cron,

WP-Cron simula un cron de sistema y permite a WordPress lanzar sus propias tareas.

Los servicios «cron» permiten programar tareas en fechas, horas o intervalos fijos periódicos. Por lo general, esto implica tareas de mantenimiento repetitivas que están automatizadas para ahorrar tiempo.

¿Pero cómo funciona el servicio de cron en WordPress?

El servicio cron de WordPress

El servicio cron de WordPress WP-Cron, por defecto funciona cada vez que un usuario visita cualquier página web.

Cuando alguien visita una página, WP-Cron comprueba si existe alguna tarea pendiente de ejecución. Si encuentra una tarea pendiente, WP-Cron la ejecutará en ese mismo instante.

Ciclo de ejecución de tareas Cron Job en WordPress
Al visitar una página WP Cron realiza tareas incrementando el Tiempo de Carga.

Para mejorar el rendimiento de tu página web WordPress, una buena opción es desactivar el sistema interno WP-Cron y delegar esa tarea a un servicio cron externo.

Te contamos cómo deshabilitar el cron interno de WordPress en esta publicación. Si quieres trabajar con un servidor especializado WordPress con wp-cron ya funcionando con su cron externo, pide tu migración GRATUITA o simplemente prueba en los servidores de desarrollo gratuito de wetopi.

Cómo ejecutar una tarea Cron en WordPress

Si quieres añadir una tarea a WP-Cron de WordPress, necesitarás primero crear el «hook» o gancho encargado de llevar a cabo la tarea. Luego a la tarea le tienes que asociar un evento y ese evento engancharlo a una de las recurrencias que WP-Cron va llamando de forma periódica.

Si eres un usuario avanzado y no quieres delegar esta tarea a un plugin, te recomendamos scheduling WP Cron events de la guía oficial WordPress Plugin Handbook.

Para los no tan avanzados, a continuación describimos el proceso ayudándonos de WP Crontrol plugin, uno de los plugin cron Gratuitos más ampliamente utilizados. 

Plugin WP Control para gestionar tareas cron en WordPress
WP Crontrol tiene más de 100,000 instalaciones activas con una impresionante calificación de 4.9 sobre 5.

Con la extensión WP Crontrol puedes ver y controlar las tareas que ejecuta WP-Cron

Desde el panel de administración de WordPress, Wp Control te permite: ver todos los eventos, añadir eventos nuevos, editar eventos existentes, añadir o modificar periodos de ejecución, etc …


Añadir Programaciones «Schedules» con la ayuda de WP-Crontrol

Tras instalar y activar el plugin WP Crontrol, dentro de la sección del menú «Ajustes» encontrarás la nueva opción “Programaciones cron”:

La edición de periodos cron para WordPress está en el Menú Ajustes
Programaciones cron o «Cron Schedules»

En «Programaciones cron» lo que puedes hacer es añadir nuevos rangos o períodos de ejecución. Por ejemplo añadir una intervalo de 600 segundos para poder así lanzar la ejecución de eventos cada 10 minutos.

Formulario Cron Schedule para añadir intervalos de programación de eventos cron para WordPress
Formulario Cron Schedule para añadir intervalos de ejecución.

Añadir un Evento para ejecutar una tarea

Para añadir un Evento, haz clic sobre la opción de menú Eventos cron “Cron Events” dentro de la sección de Herramientas:

Item Eventos Cron de WordPress con Wp-Control

Muchos de los nombres de acción de los eventos son fácilmente reconocibles, en la mayoría parte del nombre de la tarea coincide con el evento, como «wp_update_plugins» o «wp_update_themes».

Como ejemplo a continuación crearemos una simple acción «enviar un mail» para luego añadir el evento al Cron de WordPress.

Como se trata de una nueva acción, tienes que añadir el código de la acción a ejecutar en el archivo functions.php:

add_action( 'send_mail', 'send_mail_func' );
function send_mail_func() {
    wp_mail( 'hello@world.com', 'Esto es un email automatizado', 'Hola Mundo' );
}

Luego desde el panel de administración abres el apartado “Eventos cron» y rellenas el formulario de la pestaña «Añadir Evento Cron»

Formulario Eventos WP-Cron para añadir tarea a cron WordPress

Donde pone Nombre del gancho o «Hook Name«, tienes que poner el mismo nombre de la función que realiza la acción: “send_mail”. Y en el campo Próxima ejecución o «Next Run» el momento en que que queremos empezar a ejecutar el evento, en nuestro caso Ahora y la Recurrencia con la que quieres repetir el disparo del evento. En nuestro caso «Hello World» es la nueva recurrencia creada con este plugin en el paso anterior:

Listado de eventos Cron para WordPress con plugin WP Control
El nuevo evento hook send_email Event listo una vez programado.

Es interesante programar la «Próxima ejecución» en «Ahora», eso te ayudará a testear la Acción para ver si se ejecuta sin dar errores.

Como se ve en el listado, WP-Control te permite modificar también las tareas ya programadas, desde el enlace Editar del listado de eventos.

Te aconsejamos también el post relacionado, Cómo desactivar el cron de WordPress para mejorar la velocidad de carga de tu web WordPress.

¿No tienes una cuenta en wetopi?

Incluye servidores desarrollo Gratis.
Sin tarjeta de crédito.

Compara wetopi con tu hosting actual

Date de alta, pide una migración y compara.

Hacemos una copia de tu web gratis y sin esfuerzo por tu parte.

Sin letra pequeña.
Sin compromisos.
Sin tarjeta de crédito.