¿Cómo Crear y Modificar WordPress Cron Jobs?

Actualizado February 15, 2017

Cron es una herramienta unix/Linux la cual se utiliza para programar comandos o scripts en un servidor web que se ejecuta en el fondo. El cron job es la misma tarea responsable de programar el trabajo en un periodo fijo de tiempo, fecha o intervalo. Típicamente estos incluyen tareas repetitivas que son automatizadas para ganar tiempo. En WordPress esto es manejado por WP-Cron que es usado para simular un system cron. Los ejemplos de WordPress cron jobs pueden incluir la programación de una entrada de blog para publicar o un backup plugin ejecutándose según una programación predeterminada. Hoy vamos a ver detalladamente cómo crear, modificar y ejecutar WordPress cron jobs de manera fácil.

wordpress cron job

Configurar los WordPress Cron Jobs

Es importante tener en cuenta que WP-Cron es un poco diferente que un system cron y ambos tienen sus puntos positivos y negativos. Por ejemplo WP-cron basa en intervalos mientras un system cron basa en tiempos específicos. Un WP-Cron trabaja solamente cuando una página es cargada  (back-end o front-end) el cual puede ser menos confiable. Los intervalos predeterminados proporcionados por WordPress son por hora, 2 veces por día o diario.

Para programar un evento WP-Cron debe crear “custom hooks”. Recomendamos ver el manual oficial de WordPress sobre complementos lo cual tiene una guía fantástica sobre la programación de eventos de WP Cron. Si está buscando un camino alternativo para configurar un system cron con WordPress recomendamos leer el artículo de Tom Mcfarlin sobre la definición de WordPress cron jobs. Con aquellos que no se sienten tan avanzados descubriremos qué fácil es utilizar WP-Cron junto con el plugin popular gratuito WP Crontrol. Este plugin le permite ver y controlar qué está pasando en el sistema WP-Cron.
wp control plugin

WP Crontrol tiene más de 40.000 instalaciones activas con una clasificación impresionante de 4.9 puntos de 5. Muchos de la comunidad WordPress están enamorados de este plugin.

Este plugin es súper útil. Muestra cuáles son los WordPress cron jobs que deberían ejecutarse, es un primer paso excelente para comprender qué está pasando y si funciona o no. 5 estrellas sin duda. Se puede crear cron jobs nuevos y activar existentes para ejecutarse 5 estrellas superior. – Josh, creador de Caldera Forms.

Se puede descargarlo del repositorio o buscándolo dentro de su panel de control WordPress debajo de “Añadir Plugins Nuevos”. Las características de WP Crontrol incluye:

  • Habilidad de ver todos los eventos cron junto con sus argumentos, recurrencia y próximo tiempo de ejecución.
  • Editar, eliminar y ejecutar cualquier evento cron inmediatamente.
  • Añadir eventos nuevos cron.
  • Añadir, editar, y eliminar programación personalizada de cron.

Programación de WP-Cron

Una vez activado se puede cambiar la programación de WordPress Cron Jobs debajo de “Programación Cron” dentro de los ajustes del panel de control WordPress. Note por favor que el plugin añade programación predeterminada adicional semanalmente. Usted también puede añadir programación en segundos tal como 21600 segundos cada 6 horas.

wordpress cron jobs

Estos intervalos pueden se añadidos mediante un código utilizando un filtro tal como:

add_filter( 'cron_schedules', 'example_add_cron_interval' );

function example_add_cron_interval( $schedules ) {
 $schedules['five_seconds'] = array(
 'interval' => 5,
 'display' => esc_html__( 'Every Five Seconds' ),
 );

return $schedules;
 }

Eventos WP-Cron

Luego se puede utilizar el plugin para ver sus WordPress Cron Jobs actuales ya programados. Debajo de “Herramientas” haga clic en “Eventos Cron”. Muchos de los nombres de las acciones son fácilmente reconocibles ya que deberían emparejar con una parte del nombre del plugin tal como “woocoomerce_cleanup_sessions” o “gravityforms_cron.”

wp-cron events

Se puede ejecutar un evento Cron inmediatamente con un clic simple en “Ejecutar Ahora” al lado del nombre de la acción. Esto puede resultar práctico cuando esté solucionando problemas ya que tal vez necesite ejecutar un evento Cron varias veces.

successfully excuted cron event

Modificar Eventos Cron

Se puede editar eventos Cron existentes haciendo clic en “Editar” al lado del nombre de la acción. Después se puede cambiar el nombre de la acción, argumentos, la ejecución siguiente y recurrencia programada. Tenga cuidado con esto ya que muchos plugins confían en sus WordPress cron jobs para que funcionen adecuadamente.

modify cron event

Añadir Evento Cron

Usted pude Añadir eventos Cron. En este ejemplo añadiremos un WordPress Cron Job al plugin Disqus. Muchos desearán hacer esto para alterar la frecuencia de sincronización o si tienen problemas con comentarios para sincronizar de acá para allá. La documentación de desarrolladores de todos los plugins de terceros deberían tener el nombre de su evento cron o más bien el nombre de la acción. En este caso “dsq_sync_forum” que será utilizado por el plugin.

Si está creando uno desde cero necesitará un action hook correspondiente en alguna parte de su código tal como su archivo functions.php. Este es el ejemplo que WP-Crontrol da:

add_action( 'my_hookname', 'my_function' );

El próximo paso es escribir su función.

function my_function() {
    wp_mail( 'hello@example.com', 'WP Crontrol', 'WP Crontrol rocks!' );
}

Para Disqus primero añadiremos una programación nueva de cron de 600 segundos (10 minutos). Después hacemos clic en “Añadir Evento Cron” e introducimos “dsq_sync_forum” como el nombre de nuestra acción y elegimos el siguiente tiempo de ejecución y la recurrencia de 10 minutos recién creada. Así se ejecutará cada 10 minutos automáticamente para sincronizar manualmente los comentarios de Disqus con nuestra base de datos de WordPress.

add WordPress cron job

¡Y eso es todo! Es muy fácil de usar.

WP-Cron WP-CLI

Usted puede gestionar los eventos WP-Cron y/o WordPress cron jobs en WP-CLI. Por ejemplo el comando siguiente le proporcionará una lista de los eventos actuales.

wp cron event list

wp-cron event list

Consulte la documentación oficial de WP-CLI cron para obtener comandos y parámetros adicionales

¿Le resultó útil este artículo?
No, o no fue completo

Artículos relacionados

kinsta newsletter

¿Utilizas WordPress?

¡Únete a más de 20.000 lectores que ya reciben nuestro newsletter semanal GRATUITO con consejos de WordPress sobre cómo generar más tráfico e ingresos para tu negocio!

You have Successfully Subscribed!

Send this to a friend