Cron es una utilidad estándar de UNIX para programar la ejecución de tareas (scripts o comandos) a una hora, fecha o intervalo específicos. La tarea que va a ejecutar se conoce como trabajo cron. Como puedes adivinar, el propósito de un trabajo cron es automatizar tareas repetitivas para que puedas utilizar tu tiempo de forma más productiva.
Sin embargo, el trabajo cron de WordPress es ligeramente diferente del cron estándar, y es por eso que antes de sumergirte en la acción y el proceso, necesitas entender qué es un cron de WordPress y cómo funciona.
- ¿Qué es el cron de WordPress?
- Cómo gestionar una tarea cron de WordPress
- Cómo gestionar los trabajos cron de WordPress con el plugin
- Paso 1: Instalar el plugin WP Control
- Paso 2: Ver y entender los Cron Events
- Paso 3: Editar Evento Cron
- Paso 4: Añadir un intervalo de tiempo personalizado
- Paso 5: Añadir un nuevo evento cron
- Cómo gestionar los Cron Jobs de WordPress con WP CLI
- Cómo configurar un Cron Job real
- Paso 1:Abrir y editar el archivo wp-config.php
- Paso 2: Añadir un nuevo trabajo cron al servidor
- ¡Palabras finales!
¿Qué es el cron de WordPress?
WordPress tiene su propio sistema cron para programar tareas como la comprobación de actualizaciones, la programación de un post para su publicación y la eliminación de comentarios de la papelera. Todas las tareas cron son manejadas por WP-Cron.
Aunque el nombre (y la idea principal) viene de UNIX cron, WP-Cron no funciona así y utiliza intervalos para la programación de tareas. Los intervalos de tiempo por defecto proporcionados por WordPress son cada hora, dos veces al día, diariamente y semanalmente. Aquí, las tareas basadas en el tiempo dependen de que los usuarios visiten su sitio, lo que significa que WP-Cron sólo se ejecutará si un usuario visita su sitio web.
En otras palabras, WP-Cron se ejecuta cuando la página se carga. A veces esto no es tan fiable, y por eso muchos usuarios prefieren una tarea cron a nivel de servidor en lugar de la tarea WP-Cron.
En este artículo, voy a mostrarte cómo gestionar las tareas cron de WordPress y configurar una verdadera tarea cron para tu sitio de WordPress.
Cómo gestionar una tarea cron de WordPress
Hay muchas maneras de configurar y gestionar las tareas 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 añadir, modificar y gestionar las tareas cron de WordPress directamente desde el panel de control de WP. También puede crear un trabajo cron, construir ganchos y funciones, y definir intervalos de tiempo personalizados para las tareas.
Y el segundo método es con WordPress CLI.
Cómo gestionar los trabajos cron de WordPress con el plugin
Usaré el plugin WP Crontrol que le permite ver y controlar los trabajos cron de WP para su aplicación de WordPress. Es el popular plugin utilizado para manejar los trabajos cron de WP y tiene más de 100.000 instalaciones activas.
Este es el método más fácil de gestionar los trabajos cron de WordPress y puede ver, editar, crear, eliminar rápidamente y puede hacer mucho más con los eventos cron de WP.
Así que vamos a empezar!
Paso 1: Instalar el plugin WP Control
Al igual que cualquier otro plugin, necesita instalar WP Crontrol desde el repositorio de plugins y activarlo. Una vez instalado, notarás que ha aparecido una nueva opción «Cron Events» en la pestaña de Herramientas.
Paso 2: Ver y entender los Cron Events
A continuación, tienes que hacer clic en Cron Events y verás una lista de eventos cron que se están ejecutando en tu aplicación de WordPress.
Desde esta sección, puedes ejecutar, editar y eliminar tus eventos cron. Verás esta opción cuando pases el ratón por encima de cualquier evento cron.
También encontrarás información útil sobre estos trabajos cron, y podrás identificar rápidamente qué trabajo cron se utiliza para qué propósito y mucho más. En la primera columna, Hook muestra el nombre del gancho 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á que no hay ninguna opción para eliminar estos eventos cron, sin embargo, puede utilizar las opciones de editar y ejecutar ahora. Del mismo modo, para tus plugins, notarás que se utilizan otros prefijos (por ejemplo, para WooCommerce, «wc» o «woocommerce»).
La segunda columna Arguments sólo contiene los argumentos que se pasan a las funciones hook.
La tercera columna muestra cuándo se va a ejecutar este trabajo cron la próxima vez.
La cuarta columna Acción muestra qué acción va a realizar este cron (la «función» del trabajo cron).
La última columna define los tiempos de recurrencia de los trabajos cron. Esto es básicamente 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.
Vaya al nombre de un gancho y haga clic en editar. Aparecerá una nueva sección «Edit Cron Event» donde verás diferentes campos. En mi caso, he editado el hook «wp_privacy_delete_old_export_files». A continuación, voy a cambiar la recurrencia de este trabajo cron a «Cada quince minutos».
Paso 4: Añadir un intervalo de tiempo personalizado
A continuación, te mostraré cómo añadir un intervalo de tiempo personalizado para tus eventos cron. Para ello, haga clic en la pestaña «Cron Schedule» y aparecerá una nueva pantalla donde verá los detalles de los intervalos de tiempo programados. A continuación, desplácese hasta la parte inferior donde verá «Add Cron Schedule». Rellene los campos y haga clic en Añadir Cron Schedule.
Note que la entrada para el intervalo está en segundos. Voy a utilizar 600 segundos para establecer el intervalo de 10 minutos.
Ahora puedes editar tu evento cron y reemplazarlo con tu propio intervalo personalizado.
Paso 5: Añadir un nuevo evento cron
Ahora ya sabes cómo gestionar las tareas simples para tus eventos cron pero qué pasa si quieres añadir tu propio trabajo cron para tu aplicación de WordPress. No te preocupes, es muy sencillo y todo lo que tienes que hacer es seguir las siguientes instrucciones.
Primero, haz clic en Add Cron Event y entrarás en la sección de añadir cron. A continuación, sólo dar un nombre de gancho como usted desea (debe seguir la convención de nomenclatura normal de PHP y sin espacios).
A continuación, añadir argumentos (es opcional) y en mi caso está en blanco. Y a continuación, seleccione cualquier opción y ponga una hora en el campo de Próxima ejecución. Por último, elija un tiempo de recurrencia (tiempo de programación) para su nuevo cron y haga clic en Añadir Evento.
Si usted tiene alguna pregunta con respecto a esto, entonces usted puede comprobar la configuración de cualquier trabajo cron en ejecución de sus eventos cron.
Después de añadir un nuevo trabajo cron luego ir a la pestaña de eventos cron y comprobar su recién creado cron. Notarás que en la columna de acción te mostrará Ninguno (error). Esto se debe a que no ha definido ninguna acción para este trabajo cron. Por lo tanto, tienes que escribir unas líneas de código en el archivo functions.php del tema y añadir una acción.
Nota: Antes de seguir adelante, es muy recomendable hacer una copia de seguridad del sitio de WordPress.
Abramos el archivo y añadimos las siguientes líneas de código justo después de <?php:
add_action( 'cloudways_new_cron', 'cw_function' );function cw_function() {wp_mail( '[email protected]', 'Cloudways Cron', 'Cloudways - a Managed Cloud Hosting!' );}
No olvides sustituir mi dirección de correo electrónico por la tuya.
Puedes ver en la imagen de arriba, que lo he editado directamente con el dashboard de WordPress. Si lo deseas, puedes editar este archivo a través de un cliente FTP como FileZilla.
A continuación, vamos a comprobar la bandeja de entrada del correo electrónico y ver si estamos recibiendo el mensaje.
¡Tada! Ya está hecho y hemos añadido con éxito un nuevo evento cron.
Cómo gestionar los Cron Jobs de WordPress con WP CLI
También puedes ver y gestionar todos tus cron jobs de WordPress desde WordPress CLI. En Cloudways, tienes que lanzar la terminal e iniciar sesión con las credenciales del servidor.
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, tienes que ejecutar este comando:
wp cron event list
Podrás ver el nombre del hook, la próxima hora de ejecución, el próximo relativo de ejecución y la recurrencia (hora programada).
Cómo configurar un Cron Job real
Ahora, ya sabes qué es el cron job de WordPress y cómo funciona. Qué pasa si quieres reemplazarlo con un trabajo cron real debido a cualquier razón como el bajo tráfico, las tareas importantes que deben ejecutarse en un momento determinado, los ataques DDoS excesivos, o el alto tiempo de carga de la página.
Así que vamos a empezar!
Paso 1:Abrir y editar el archivo wp-config.php
Primero, tienes que abrir el archivo wp-config utilizando un cliente FTP como FileZilla o 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 blogueo. */
Código:
define('DISABLE_WP_CRON', true);
Este código desactiva los eventos cron en ejecución en su sitio de WordPress y ahora puede crear un trabajo cron real.
Paso 2: Añadir un nuevo trabajo cron al servidor
A continuación, inicie sesión en su plataforma Cloudways y luego vaya al panel de gestión de aplicaciones > Gestión de trabajos cron > Sección avanzada.
A continuación, añada el siguiente comando y haga clic en Guardar cambios:*/5 * * * * wget -q -O - 'https://wordpress-413270-1299955.cloudwaysapps.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. Usted puede utilizar este sitio para comprobar la expresión del horario. En mi caso, */5 * * * *
es la expresión del intervalo.
¡Felicidades! Has añadido con éxito un trabajo cron real.
¡Palabras finales!
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.