Cron és un servei molt comú als sistemes Linux i similars que generalment s’usa per a programar comandes o scripts al servidor perquè s’executin en segon pla.
En aquest post et mostrem, pas a pas, com programar tasques recurrents amb WordPress.
Table of Contents
- Introducció
- El servei cron de WordPress
- Com executar una tasca Cron amb WordPress
- Afegir Programacions “Schedules” amb l’ajuda de WP-Crontrol
- Afegir un Esdeveniment per a executar una tasca
Introducció
A WordPress tenim el nostre propi cron anomenat WP-Cron
WP-Cron simula un cron de sistema i permet que WordPress dispari les seves pròpies tasques.
Els serveis “cron” permeten programar tasques en dates, hores o intervals fixos periòdics. En general, això implica tasques de manteniment repetitives que estan automatitzades per a estalviar temps.
Però com funciona el servei de cron de WordPress?
El servei cron de WordPress
El servei cron de WordPress WP-Cron, per defecte es dispara cada vegada que un usuari visita una pàgina web.
Quan algú visita una pàgina, WP-Cron comprova si existeix alguna tasca pendent d’execució. Si troba una tasca pendent, WP-Cron l’executarà en aquest mateix instant.
Per a millorar el rendiment de la teva pàgina web WordPress, una bona opció és desactivar el sistema intern WP-Cron i delegar aquesta tasca a un servei cron extern.
T’expliquem com deshabilitar el cron intern de WordPress en aquesta publicació. Si vols treballar amb un servidor especialitzat WordPress amb wp-cron ja funcionant des de fora amb cron extern, demana la teva migració GRATUÏTA o simplement prova en els servidors de desenvolupament gratuït de wetopi.
Com executar una tasca Cron amb WordPress
Si vols afegir una tasca a WP-Cron de WordPress, necessitaràs primer crear el “hook” o ganxo encarregat de dur a terme la tasca. Després a la tasca li has d’associar un esdeveniment i aquest esdeveniment enganxar-lo a una de les recurrències que WP-Cron va cridant de manera periòdica.
Si ets un usuari avançat i no vols delegar aquesta tasca a un plugin, et recomanem scheduling WP Cron events de la guia oficial WordPress Plugin Handbook.
Per als no tan avançats, a continuació descrivim el procés ajudant-nos de WP Crontrol plugin, un dels plugin cron Gratuïts més àmpliament utilitzats.
Amb l’extensió WP Crontrol pots veure i controlar les tasques que executa WP-Cron
Des del panell d’administració de WordPress, Wp Control et permet: veure tots els esdeveniments, afegir esdeveniments nous, editar esdeveniments existents, afegir o modificar períodes d’execució, etc …
Afegir Programacions “Schedules” amb l’ajuda de WP-Crontrol
Després d’instal·lar i activar el plugin WP Crontrol, dins de la secció del menú “Ajustos” trobaràs la nova opció “Programacions cron”:
En “Programacions cron” el que pots fer és afegir nous rangs o períodes d’execució.
Per exemple afegir un interval de 600 segons per a poder així disparar l’execució d’esdeveniments cada 10 minuts.
Afegir un Esdeveniment per a executar una tasca
Per a afegir un Esdeveniment, fes clic sobre l’opció de menú Esdeveniments cron “Cron Events” dins de la secció d’Eines:
Molts dels noms d’acció dels esdeveniments són f doncs la part del nom de la tasca coincideix molts cops amb la de l’esdeveniment, com per exemple “wp_update_plugins” o “wp_update_themes”.
Com a exemple a continuació crearem una simple acció “enviar un mail” per a després afegir l’esdeveniment al Cron de WordPress.
Com es tracta d’una nova acció, has d’afegir el codi de l’acció a executar en l’arxiu functions.php:
add_action( 'send_mail', 'send_mail_func' );
function send_mail_func() {
wp_mail( 'hello@world.com', 'Això és un email automatitzat', 'Hola Món' );
}
Després des del panell d’administració obres l’apartat “Esdeveniments cron” i emplenes el formulari de la pestanya “Afegir Esdeveniment Cron”
On posa Nom del ganxo o “Hook Name“, has de posar el mateix nom de la funció que realitza l’acció: “send_mail”. I al camp Pròxima execució o “Next Run” el moment en què que volem començar a executar l’esdeveniment, en el nostre cas Ara i a Recurrència, el període amb el qual vols repetir l’esdeveniment. Pel nostre cas “Hello World” és la nova recurrència creada amb en el pas anterior:
És interessant programar la “Pròxima execució” amb valor “Ara”, això t’ajudarà a testar l’Acció per a veure si s’executa sense donar errors.
Com es veu en el llistat, WP-Control et permet modificar també les tasques ja programades, des de l’enllaç Editar del llistat d’esdeveniments.
T’aconsellem també el post relacionat, Com desactivar el cron de WordPress per a millorar la velocitat de càrrega del teu web WordPress.
Encara no tens compte a Wetopi?
Inclou servidors de desenvolupament Gratis.
No cal tarjeta de crèdit.