Cómo configurar y gestionar WordPress cron job

Cron es una utilidad de UNIX que permite a los usuarios ejecutar tareas programadas en un servidor web. WordPress tiene su propio sistema cron, llamado WP-Cron, que simula el sistema cron de UNIX para automatizar los controles de actualización, la publicación programada de entradas y otras tareas repetitivas.

Si eres un usuario de WordPress, saber cómo programar eventos cron de WP te facilitará las tareas administrativas.

Este artículo cubrirá la configuración y gestión del sistema cron de WordPress con un plugin y WP-CLI. También aprenderás las ventajas y desventajas de usar el cron de WordPress y cómo se diferencia del cron job de UNIX.

Descarga la hoja de trucos de WordPress definitiva

WordPress cron job es un sistema que simula el sistema cron de UNIX para automatizar la programación de tareas en intervalos de tiempo personalizados. Permite a los usuarios de WordPress realizar tareas basadas en el tiempo en la carga de la página, como la publicación de posts programados y la comprobación de actualizaciones.

¿Cuáles son las ventajas y los inconvenientes de utilizar WordPress Cron?

El sistema WP-Cron es fácil de configurar porque, a diferencia del cron job de UNIX, no requiere conocimientos de comandos UNIX. Varios plugins de WordPress cron job vienen con características que simplifican el proceso de configuración y gestión, haciendo que el sistema sea accesible incluso para principiantes.

Al permitirle programar tareas repetitivas en un intervalo de tiempo personalizado, puedes ahorrar tiempo y centrarte en otras tareas esenciales. Además, este sistema te garantiza que no perderás ningún dato si las tareas programadas no se ejecutan a tiempo, algo que el cron job de UNIX no puede hacer.

Desafortunadamente, WP-Cron sólo se ejecuta cuando un usuario visita tu sitio web. Los sitios web de WordPress con poco tráfico omitirán algunos trabajos si nadie activa la carga de la página, provocando una acumulación de caché pendiente, perjudicando el tiempo de carga y el rendimiento del sitio.

Llevar tráfico a tu sitio no resolverá este problema. De hecho, los sitios de alto tráfico que utilizan tareas cron son propensos a condiciones de carrera y procesos de larga duración. Las condiciones de carrera ocurren cuando se producen varias visitas al mismo tiempo, lo que hace que WP-Cron ejecute la misma tarea simultáneamente. Esto acumula una fila de trabajos, lo que resulta en un rendimiento lento.   

Cómo gestionar los Cron Jobs de WordPress con un plugin

La forma más sencilla de configurar y gestionar las tareas cron de WordPress es utilizar un plugin de tareas cron. En este tutorial, usaremos WP Crontrol ya que es gratuito y tiene todas las características necesarias. Siéntete libre de utilizar otros plugins que se adapten a tus preferencias.

1. Instala el plugin WP Crontrol

En primer lugar, instala y activa el plugin de WordPress para la gestión de tareas cron siguiendo estos pasos:

  1. Ve a Plugins -> Añadir nuevo desde tu panel de administración de WordPress.
  2. Utiliza la función de filtro para encontrar WP Crontrol y haz clic en Instalar ahora.
  3. Una vez completada la instalación, selecciona Activar.

Para ver todas las tareas cron que se están ejecutando en tu sitio de WordPress, ve a Herramientas -> Eventos Cron desde tu panel de control.

Sección "Eventos cron" en WordPress

¡Importante! No elimines ningun cron job de WordPress por defecto (tienen el prefijo wp). Si lo haces, interrumpirás la función principal del sitio. 

2. Añade un nuevo evento cron

Ahora que puedes controlar los cron job de WordPress, puedes empezar a gestionarlos. A continuación se explica cómo añadir un nuevo evento cron:

  1. Accede al submenú Eventos cron y haz clic en Añadir nuevo en la parte superior de la página.
Botón "Añadir nuevo" en la sección Eventos cron en WordPress
  1. Elige la opción de Standard cron event y crea un gancho para el nuevo evento cron. Asegúrate de que el nombre del gancho siga la convención de nomenclatura estándar de PHP. Programa el tiempo de ejecución y la recurrencia. Siéntete libre de dejar el cuadro de texto Argumentos vacío.
Ventana para Añadir evento cron en WordPress
  1. Haz clic en Añadir un evento. El nuevo evento cron aparecerá en la lista de Eventos Cron si el proceso fue exitoso.
Sección Eventos cron en WordPress
  1. Ahora que tienes un gancho, el siguiente paso es añadirlo junto con la acción que se ejecuta cuando se activa el evento cron. Accede a tu panel de control de hPanel y abre el Administrador de archivos en la sección Archivos.
Administrador de archivos del hPanel
  1. Localiza el archivo functions.php de tu tema dentro del directorio raíz. Haz doble clic en el archivo para abrirlo y añade el siguiente fragmento de código:
add_action( 'hostinger_custom_cron', 'hostinger_custom_cron_func' );
function hostinger_custom_cron_func() {
  wp_mail( 'tucorreo@ejemplo.com', 'Automatic email', 'Automatic scheduled email from WordPress to test cron');
}

Este ejemplo utiliza la función wp_mail() que pide a WordPress que envíe un correo electrónico cuando se ejecute el evento cron. No olvides cambiar el marcador de posición por una dirección de correo electrónico real.

  1. Guarda los cambios realizados y carga tu sitio web. Si recibes el correo de prueba, el evento cron está funcionando correctamente.
Mensaje de correo electrónico confirmando prueba cron

3. Establece la programación de cron

El plugin proporciona cuatro intervalos de tiempo estándar para elegir, pero también permite a los usuarios crear intervalos personalizados. Sigue estos pasos para añadir un nuevo horario cron:

  1. Ve a Ajustes -> Programaciones cron desde tu panel de administración de WordPress. 
  2. Rellena los campos de la sección «Añadir programación cron». Aquí, estableceremos el intervalo a 600 segundos (10 minutos). Utiliza la convención de nombres de PHP para crear el nombre del intervalo.
Ventana para Programaciones cron en WordPress
  1. Haz clic en Añadir programación cron. El nuevo intervalo de tiempo debería aparecer en la lista. 
Sección de Programaciones cron de WordPress

4. Edita un evento cron existente

Ahora que tenemos un intervalo personalizado, vamos a utilizarlo con el cron personalizado. A continuación se explica cómo modificar un evento cron existente:

  1. Vuelve a Herramientas -> Eventos Cron y localiza el evento cron que creamos anteriormente. Haz clic en Editar debajo de él.
  2. Abre el menú desplegable de Recurrencia y selecciona 10 minutos.
Ventana para Editar evento cron en WordPress
  1. Haz clic en Actualizar evento.

Cómo configurar WordPress cron job con WP-CLI

Otra forma de configurar las tareas cron de WordPress es utilizar WP-CLI. Esta herramienta permite gestionar el sitio a través de una interfaz de línea de comandos.

Los planes de host web de Hostinger (excluyendo el plan Hosting sencillo) vienen con WP-CLI preinstalado. Por lo tanto, sólo tendrás que conectarte a tu cuenta de alojamiento, utilizando Putty SSH.

Para acceder a los eventos cron existentes, introduce este comando en el terminal:

wp cron event list

El siguiente comando mostrará los otros comandos que puedes utilizar con WP-CLI:

wp help

Cómo crear un cron job real

WordPress crea y almacena el script WP-Cron dentro del archivo wp-cron.php. Aunque permite que tu sitio web de WordPress tenga cron jobs en ejecución independientemente del sistema operativo, este archivo no es inmune a los ataques y puede entrar en conflicto con los plugins de caché. El uso de cron jobs reales puede eliminar la ejecución constante del archivo.

Antes de configurar cron jobs reales, deberás desactivar el cron por defecto de WordPress. Para desactivar WP_CRON, añade este fragmento de código al archivo wp-config.php por encima de la línea «/* That’s all, stop editing! Happy blogging. */» :

define( 'DISABLE_WP_CRON', true );

El siguiente paso es configurar un cron job real para programar las tareas principales de WordPress. El proceso puede variar dependiendo de tu proveedor de alojamiento o servicio. Si eres usuario de Hostinger, sigue este tutorial:

  1. Accede a tu panel de control de hPanel y navega hasta Tareas Programadas (Cron) en la sección Avanzado.
  2. Añade este fragmento de código al cuadro de texto Comando a ejecutar:
wget -O /dev/null -o /dev/null https://tusitioweb.com/wp-cron.php?doing_wp_cron

No olvides cambiar el marcador de posición con la URL real de tu sitio web.

Sección Tareas Programadas (Cron) en hPanel
  1. hPanel proporciona las opciones de intervalo más comunes para elegir. Recomendamos empezar con dos veces por hora.
  2. Haz clic en Guardar para almacenar la nueva configuración del cron job.

Conclusión

El cron job de WordPress hace importante programar tareas en intervalos de tiempo personalizados. Aunque WP-Cron tiene algunas desventajas, saber utilizar esta utilidad te permitirá realizar tareas administrativas de forma más eficiente.

Esperamos que este artículo te haya ayudado a entender la funcionalidad del cron job de WordPress y cómo configurarlo usando un plugin y WP-CLI. ¡Buena suerte!

Si deseas optimizar aún más el rendimiento de tu sitio de WordPress, te recomendamos que utilices un alojamiento de WordPress de alta calidad.

Cómo configurar WordPress cron job – Preguntas frecuentes

¿Cuál es la diferencia entre WP-Cron y cron?

WP-Cron es un sistema basado en la web que simula el sistema cron de UNIX. Los eventos de WP-Cron se activan al cargar la página, mientras que el cron real se ejecuta cada minuto.

¿Debo usar el cron real o WP-Cron?

WP-Cron funciona perfectamente para su propósito, que es ejecutar las tareas principales de WordPress. Sin embargo, utilizarlo para ejecutar tareas adicionales puede perjudicar la velocidad de carga de tu sitio. Por esta razón, recomendamos utilizar cron jobs reales para un mejor rendimiento.

¿Cómo puedo detener un cron Job en WordPress?

Si tienes cron jobs no utilizados, la solución más fácil sería eliminarlos. Como alternativa, modifica el intervalo de tiempo según sea necesario.

Ejecuta este comando para eliminar los cron jobs que utilizan un gancho específico. Este método es ideal para eliminar cron jobs obsoletos:

$ wp cron event delete hook_name

¿Dónde puedo encontrar cron jobs en WordPress?

Los cron jobs en WordPress se pueden encontrar en el archivo wp-config.php o usando un plugin como WP Crontrol o Advanced Cron Manager.

¿Cómo puedo ejecutar un cron job en WordPress?

Para ejecutar un cron job en WordPress, puedes usar la función wp_schedule_event() en el archivo functions.php de tu tema o usar un plugin como WP Crontrol o Advanced Cron Manager para configurar y gestionar trabajos cron.

Author
El autor

Diego Vargas

Diego es comunicador social, especialista en publicidad digital que trabaja constantemente en mejorar sus conocimientos de marketing digital, enfocándose en contenido y SEO. Idiomas, series, libros y cursos en internet son sus hobbies principales, además de los deportes. Este es su perfil de LinkedIn.