Muchos desarrolladores de WordPress, especialmente los principiantes, tienen preguntas comunes, “¿qué es WordPress cron?” y “¿cómo gestionar los trabajos cron de WordPress?” ¡La respuesta es simple!
Cron es una utilidad estándar de UNIX para programar la ejecución de tareas (script o comando) en un momento, fecha o intervalo específico. La tarea que ejecutará se conoce como trabajo cron. Como puedes adivinar, el propósito de un trabajo cron es automatizar tareas repetitivas para que puedas usar tu tiempo de manera más productiva.
Sin embargo, el trabajo cron de WordPress es ligeramente diferente al cron estándar, por lo que antes de sumergirte en la acción y el proceso, necesitas entender qué es un cron de WordPress y cómo funciona para la automatización de tareas.
Tabla de contenido:
¿Qué es WordPress Cron?
WordPress tiene su propio sistema cron para programar tareas como verificar actualizaciones, programar una publicación para su publicación y eliminar comentarios de la papelera. Todos los trabajos cron son manejados por WP-Cron.
Aunque el nombre (y la idea principal) proviene de UNIX cron, el cron de WordPress no funciona de esa manera y utiliza intervalos para programar tareas. Los intervalos de tiempo predeterminados proporcionados por WordPress son cada hora, dos veces al día, diariamente y semanalmente. Aquí, las tareas basadas en el tiempo dependen de los usuarios que visitan tu sitio, lo que significa que el cron de WordPress solo se ejecutará si un usuario visita tu sitio web.
En otras palabras, el cron de WordPress se ejecuta cuando se carga la página. A veces esto no es tan confiable, y es por eso que muchos usuarios prefieren un trabajo cron a nivel de servidor sobre el trabajo WP-Cron.
Ventajas de WordPress Cron
Si quieres automatizar un proceso de sitio web o necesitas verificarlo, verificarlo y controlarlo regularmente, los trabajos cron son útiles. Por ejemplo, podríamos querer hacer ping a un servidor una vez al día, verificar el estado de un sistema cada hora (y registrarlo en la base de datos), etc.
WP Cron facilita que el núcleo de WordPress y otros plugins realicen tareas basadas en el tiempo. Es relativamente fácil configurar un trabajo cron de WordPress en lugar de usar un trabajo cron real que requiere conocimiento de los comandos de Linux.
Además, dado que WP-Cron utiliza intervalos para programar tareas, puedes estar seguro de que tu tarea se ejecutará eventualmente incluso si el tiempo programado elapsa, a diferencia de un cron real que especifica la hora exacta en que debe ejecutarse una tarea. Si pasa el tiempo y la tarea no se ejecuta, entonces no se ejecutará de nuevo hasta que la reprogramas manualmente.
¿Cómo gestionar los trabajos cron de WordPress?
Hay muchas formas de configurar y gestionar los trabajos cron de WordPress, pero te mostraré dos métodos populares.
El primero utiliza un plugin de gestión cron como WP Crontrol que te permite agregar, modificar y gestionar trabajos cron de WordPress directamente desde el panel de WP. También puedes crear un trabajo cron, construir hooks y funciones, y definir intervalos de tiempo personalizados para las tareas.
¿Cómo gestionar los trabajos cron de WordPress con plugins?
Usaré el plugin WP Crontrol que te permite ver y controlar el cron de WordPress para tu aplicación de WordPress. Es el plugin popular que maneja los trabajos cron de WP y tiene más de 200,000+ instalaciones activas.
WP-Cron no se ejecuta continuamente. Por defecto, wp-cron.php se dispara en cada carga de página, lo que en sitios web de alto tráfico puede causar problemas. Si un sitio web no tiene suficientes trabajadores de PHP, a veces llegará una solicitud y WordPress producirá el cron, pero el cron debe esperar al trabajador, y hasta entonces se queda allí.
Este es el método más fácil de gestionar los trabajos cron de WordPress, y puedes ver, editar, crear, eliminar y hacer mucho más con los eventos cron de WordPress.
¡Así que empecemos!
Paso 1: Instalar el plugin WP Control
Al igual que cualquier otro plugin, necesitas instalar WP Crontrol desde el repositorio de plugins y activarlo.
Una vez instalado, notarás que una nueva opción, “Cron Events” ha aparecido en la pestaña Herramientas.
Paso 2: Ver y entender los eventos Cron
A continuación, necesitas hacer clic en Cron Events y ver una lista de eventos cron que se ejecutan en tu aplicación de WordPress.
Puedes ejecutar, editar y eliminar tus eventos cron desde esta sección. Verás esta opción cuando pases el ratón sobre cualquier evento cron.
También encontrarás información útil sobre estos trabajos cron y podrás identificar rápidamente para qué se utiliza cada trabajo cron y mucho más.
- En la primera columna, Hook muestra el nombre del hook utilizado por el núcleo de WordPress o cualquier plugin. Por ejemplo, el prefijo “wp” simplemente muestra que es un cron del núcleo de WordPress.
- También notarás que no hay opción para eliminar estos eventos cron, sin embargo, puedes usar las opciones de editar y ejecutar ahora. De manera similar, para tus plugins, notarás otros prefijos que se utilizan (por ejemplo, para WooCommerce, “wc” o “woocommerce”).
- La segunda columna, Argumentos, solo contiene los argumentos pasados a las funciones de hook.
- La tercera columna muestra cuándo se ejecutará este trabajo cron la próxima vez.
- La cuarta columna, Acción, muestra qué acción realizará este cron (la “función” del trabajo cron).
- La última columna define los tiempos de recurrencia de los trabajos cron. Este es el intervalo de tiempo para la tarea programada.
Paso 3: Editar evento Cron
Ahora vamos a editar un trabajo cron de WP para probar este plugin.
- Ve al nombre de un hook y haz clic en editar.
- Aparecerá una nueva sección, “Edit Cron Event”, donde verás diferentes campos. En mi caso, edité el hook “wp_privacy_delete_old_export_files”.
- A continuación, voy a cambiar la recurrencia de este trabajo cron a ‘Una vez por hora (hourly)’.
Paso 4: Agregar un intervalo de tiempo personalizado
A continuación, te mostraré cómo agregar un intervalo de tiempo personalizado para tus eventos cron.
- Ve a Configuración de WordPress → Cron Schedules.
- Ahora, haz clic en la pestaña “Cron Schedule”, y aparecerá una nueva pantalla donde verás los detalles de los intervalos de tiempo programados.
- Rellena los campos Nombre interno, Intervalo en segundos y Nombre a mostrar, y luego haz clic en Agregar Cron Schedule.
- Nota que la entrada para el intervalo está en segundos. Usaré 600 segundos para establecer el intervalo en 10 minutos.
- Ahora puedes editar tu evento cron y reemplazarlo con tu intervalo personalizado.
Paso 5: Agregar un nuevo evento Cron
Ahora sabes cómo gestionar las tareas simples para tus eventos cron, pero ¿qué pasa si quieres agregar tu propio trabajo cron para tu aplicación de WordPress? No te preocupes; es muy sencillo, y debes seguir las instrucciones a continuación.
- Primero, haz clic en Agregar evento Cron, y entrarás en la sección de agregar cron.
- Luego, simplemente da un nombre de hook como desees (debe seguir la convención de nombres de PHP normal y sin espacios).
- Luego, agrega argumentos (es opcional); en mi caso, está en blanco.
- A continuación, selecciona cualquier opción y pon un tiempo en el campo Próxima ejecución.
- Por último, elige un tiempo de recurrencia (tiempo programado) para tu nuevo cron y haz clic en Agregar evento.
- Si tienes alguna consulta al respecto, puedes verificar cualquier configuración de trabajo cron en ejecución desde tus eventos cron.
- Después de agregar un nuevo trabajo cron, ve a la pestaña de eventos cron y verifica tu cron recién creado. Notarás que la columna de acción te mostrará Ninguno (error). Esto se debe a que no has definido ninguna acción para este trabajo cron.
- Por lo tanto, necesitas escribir unas pocas líneas de código en el archivo functions.php del tema y agregar una acción.
Nota: Antes de continuar, se recomienda encarecidamente hacer una copia de seguridad del sitio de WordPress.
- Ve al panel de WordPress → Apariencia y haz clic en el Editor de archivos de tema.
- Haz clic en el archivo function.php desde la opción Archivos de tema en el lado derecho de la página.
- Agrega las siguientes líneas de código justo después de <?php en el archivo function.php de tu tema
add_action( 'tutoriales_new_cron', 'cw_function' ); function cw_function() { wp_mail( 'danish.naseer@tutoriales.com', 'Tutoriales Cron', 'Tutoriales- a Managed Cloud Hosting!' ); }
Nota: No olvides reemplazar mi dirección de correo electrónico por la tuya.
Puedes ver en la imagen de arriba que lo edité directamente con el panel de WordPress. Si lo deseas, puedes editar este archivo a través de un cliente FTP como FileZilla.
A continuación, verifica la bandeja de entrada del correo electrónico y ve si estamos recibiendo el mensaje.
¡Tada! Ya está hecho, y hemos agregado con éxito un nuevo evento cron.
¿Cómo gestionar los trabajos cron de WordPress con WP CLI?
También puedes ver y gestionar todos tus trabajos cron de WordPress desde WordPress CLI.
- Puedes usar PuTTy para iniciar sesión en tu servidor. Ingresa la dirección IP de tu servidor y haz clic en Abrir.
- Ingresa el nombre de usuario y la contraseña de tu servidor en PuTT
- A continuación, coloca la ruta de tu aplicación de WordPress. En mi caso, la URL era:
cd applications/urrghmpqks/public_html/
- A continuación, necesitas ejecutar este comando:
wp cron event list
- Puedes ver el nombre del hook, el tiempo de la próxima ejecución, el próximo tiempo relativo y la recurrencia (tiempo programado).
¿Cómo configurar un trabajo cron real?
Ahora, ya sabes qué es un trabajo cron de WordPress y cómo funciona. ¿Y si quieres reemplazarlo con un trabajo cron real para tráfico bajo, tareas importantes que necesitan ejecutarse en un momento particular, ataques DDoS excesivos o un alto tiempo de carga de la página?
¡Así que empecemos!
Paso 1: Abrir y editar el archivo wp-config.php
Primero, necesitas abrir el archivo wp-config usando un cliente FTP como FileZilla o un cliente SSH como PuTTY. Después de eso, edita el archivo y coloca la siguiente línea de código antes de la línea donde dice /* Eso es todo. ¡Deja de editar! Feliz blogging. */
define('DISABLE_WP_CRON', true);
Este código desactiva los eventos cron en ejecución en tu sitio de WordPress, y ahora puedes crear un trabajo cron real.
Paso 2: Agregar un nuevo trabajo cron al servidor
A continuación, inicia sesión en algunas de las plataformas disponibles, luego ve al panel de gestión de aplicaciones → Gestión de trabajos cron → Sección avanzada.
Luego agrega el siguiente comando y haz clic en Guardar cambios:
*/5 * * * * wget -q -O - 'https://wordpress-413270-1299955.tutorialessapps.com/wp-cron.php?doing_wp_cron' >/dev/null 2>&1
En el comando anterior, primero definí un intervalo de cinco minutos para el trabajo cron. Puedes usar este sitio para verificar la expresión de horario de tiempo. En mi caso, */5 * * * * es la expresión de intervalo.
¡Eso es todo! Has agregado con éxito un trabajo cron real.
Resumen
Espero que este artículo te haya ayudado a entender cómo funciona el trabajo cron de WordPress. He discutido dos métodos para gestionar los trabajos cron de WordPress; uno a través de un plugin y el otro a través de WP-CLI. También he discutido cómo configurar un trabajo cron real en un servidor en vivo de WordPress. Por favor, déjame saber en la sección de comentarios a continuación si tienes alguna pregunta.