Recentemente, uno dei nostri lettori ci ha chiesto se fosse possibile visualizzare e controllare il sistema di cron job di WordPress nella dashboard. Secondo la nostra esperienza, questa è una domanda che molti utenti di WordPress si pongono, soprattutto quando acquisiscono maggiore familiarità con il funzionamento di WordPress dietro le quinte.
Per chi non lo sapesse, Cron è una tecnologia che consente di eseguire attività programmate sul server web. WordPress è dotato di un cron incorporato che gli permette di eseguire operazioni programmate come la verifica degli aggiornamenti, la pubblicazione di post programmati, ecc.
In questo articolo vi mostreremo come visualizzare e controllare i cron job di WordPress.
Che cos’è WordPress Cron? Come funziona?
Cron è un termine tecnico usato per i comandi da eseguire a orari programmati o a intervalli regolari. La maggior parte dei server web lo utilizza per la manutenzione del server e per l’esecuzione di attività programmate.
WordPress è dotato di un proprio sistema cron che gli consente di eseguire attività programmate. Ad esempio, il controllo degli aggiornamenti, la cancellazione dei vecchi commenti dal cestino, la pubblicazione di post programmati e così via.
Anche iplugin di WordPress possono utilizzarlo per eseguire attività specificate dall’utente. Ad esempio, il plugin di backup di WordPress può utilizzare WordPress cron per creare automaticamente i backup in base a una determinata pianificazione.
Tuttavia, l’uso irresponsabile di WordPress cron da parte dei plugin può rallentare il vostro sito web. Soprattutto se si utilizza un hosting condiviso.
Se un plugin esegue frequentemente operazioni ad alta intensità di risorse, è necessario identificare il problema e risolverlo.
Vediamo come visualizzare e controllare il sistema cron di WordPress senza scrivere alcun codice.
Visualizzazione e controllo del sistema Cron di WordPress
La prima cosa da fare è installare e attivare il plugin WP Crontrol. Per maggiori dettagli, consultate la nostra guida passo passo su come installare un plugin di WordPress.
Dopo l’attivazione, è necessario visitare la pagina Strumenti ” Eventi cron per controllare le impostazioni cron.
Verrà visualizzato un elenco di tutti gli eventi cron pianificati per l’esecuzione sul vostro sito utilizzando il sistema cron di WordPress.
Nella prima colonna, si vedrà il nome dell’hook che esegue il cron.
I nomi dei ganci di solito danno un’idea di cosa fa questo particolare evento.
La maggior parte dei ganci predefiniti di WordPress inizia con il prefisso wp_, come wp_update_plugins, wp_update_themes, ecc.
I plugin di WordPress possono utilizzare o meno i propri prefissi per i loro agganci. Ad esempio, All in One SEO utilizza il prefisso aioseo_
.
È inoltre possibile vedere quando verrà eseguito il cron successivo e l’intervallo di tempo tra l’esecuzione successiva.
L’ultima colonna dell’elenco consente di modificare, eliminare o eseguire un evento cron.
Importante: fate molta attenzione a ciò che fate con gli eventi cron e non cancellate mai un evento cron predefinito di WordPress.
Supponiamo di vedere un evento cron creato da un plugin di WordPress che richiede molte risorse.
Per prima cosa, è necessario controllare le impostazioni del plugin per vedere se c’è un’opzione per controllarlo da lì. In caso contrario, è possibile fare clic sul link “Modifica” accanto all’evento cron per modificarlo.
Facendo clic sul pulsante Modifica si aprirà la scheda “Modifica evento cron” in basso.
Qui è possibile modificare la frequenza di esecuzione dell’evento.
Una volta terminato, fare clic sul pulsante “Modifica evento cron” per memorizzare le impostazioni.
Aggiungere i propri eventi Cron in WordPress
Il plugin WP Crontrol consente di aggiungere facilmente i propri cron job a WordPress. È sufficiente visitare la pagina Strumenti ” Eventi cron e scorrere fino alla scheda “Aggiungi evento cron”.
Innanzitutto, è necessario fornire un nome di hook per l’evento cron. I nomi dei ganci non possono contenere spazi o caratteri speciali.
Se la funzione che si vuole eseguire richiede degli argomenti, è possibile fornirli.
Successivamente, è necessario indicare a WordPress quando eseguire il cron la prossima volta. È possibile inserire “ora”, che attiverà cron immediatamente, “domani”, “+2 giorni” o “25-02-2020 12:34:00”.
Infine, è necessario selezionare un orario. È possibile selezionare un orario, due volte al giorno, un giorno o una volta alla settimana. È anche possibile rendere l’evento non ripetitivo.
Una volta terminato, fare clic sul pulsante “Aggiungi evento cron” per salvare le modifiche.
Si noterà che l’evento cron appare ora nell’elenco degli eventi.
Tuttavia, attualmente non fa nulla perché non si è detto a WordPress cosa fare quando questo evento viene attivato.
È necessario aggiungere il gancio e una funzione che viene eseguita quando il gancio cron viene attivato.
add_action( 'wpb_custom_cron', 'wpb_custom_cron_func' );
function wpb_custom_cron_func() {
wp_mail( 'you@example.com', 'Automatic email', 'Automatic scheduled email from WordPress to test cron');
}
Non dimenticate di utilizzare il vostro indirizzo e-mail.
Questa funzione invia semplicemente un’e-mail di prova quando il cron viene eseguito. Ora è possibile scorrere la pagina e fare clic sul link “Esegui ora” accanto all’evento cron per testarlo.
Nota: l’utilizzo di cron richiede competenze di livello intermedio in materia di programmazione e sviluppo di WordPress. Se non avete queste competenze, vi consigliamo di assumere uno sviluppatore WordPress.
Questo è tutto. Speriamo che questo articolo vi abbia aiutato a capire come visualizzare e controllare i cron job di WordPress. Potreste anche voler consultare la nostra guida su come installare in blocco i vostri plugin WordPress preferiti o la nostra selezione dei migliori plugin di sicurezza per WordPress.
Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.
Paul Barrett
We run cron at server level because wp-cron overloads teh server. There’s is nothing on our site that is so time-critical the jobs need to running frequently. If we set the frequency to say daily, would WordPress have a problem?
WPBeginner Support
It would heavily depend on what is being done on the site and when. We do not have a specific recommendation for what can be delayed to that extent.
Admin
Matt K
When I go to change the the recurrence on the Hooks, they just get changed back. Something isn’t right. Do I need to disable WP crons in wp-config.php first?
WPBeginner Support
It would depend on the specific chron job, if you reach out to the plugin’s support they should be able to assist
Admin
Heinz
Can I deactivate or even delete WP Control plugin in after having set a cron job, so I don’t have too many plugins running and slow down the website?
WPBeginner Support
Yes, as long as you’ve used one of the default schedules (such as daily). If you’ve added a custom schedule any event that uses it will run once more but won’t repeat after that.
The plugin should not cause a slowdown of your site, for a better understanding of how WordPress plugins affect your site you may want to take a look at our article here:
https://www.wpbeginner.com/opinion/how-many-wordpress-plugins-should-you-install-on-your-site/
Admin
Andre Hesdahl
I am a newbee with WordPress and don’t know where to put (or how to execute) the code:
add_action( ‘wpb_custom_cron’, ‘wpb_custom_cron_func’ );
function wpb_custom_cron_func() {
wp_mail( ‘you@example.com’, ‘Automatic email’, ‘Automatic scheduled email from WordPress to test cron’);
}
Jeff
Thanks for the article. Interesting to see the number of plugins that have cron jobs running often. Great peak under the hood plugin…
David
How can i configure the cron to every half hour?
hazel beaver
When I check the cron schedule the dates shown in the ‘next run’ column are all in the past. Does that mean they are not running?
In the past I think I added ‘true’ in the wp config file to stop automatic wp updates from breaking my site…. could this be the cause?
Janson
Does this work in Multi-site? Can one control crons for all instances in a multisite scenario?
Oleg
Great article, but no need for
if ( ! wp_next_scheduled( ‘wpb_custom_cron’ ) ) {
wp_schedule_event( time(), ‘hourly’, ‘my_task_hook’ );
}
this part is done in the plugin,
beny salim
how can i add Recurrence like five minutes, ten minutes
Ahmad Sayeed
I tested you given example. It works like a superman. But please give us an example to send parameter. I have added the function while creating the even. But I don’t know how to use them on PHP function.
Please give us an example
Sunny
My website is coming up with a long wp cron string after my URL and I cant get rid of it. Any thoughts?
?doing_wp_cron=1499261576.8675799369812011718750 comes up after my url and its making me look really spammy. Your insight would be appreciated.
Aniket Ashtikar
Is that ‘my_task_hook’ cron hook rightly mentioned there at line 2 or should that rather be changed to ‘wpb_custom_cron’?
Matt
Do you know if its possible to visit a link in the wp-admin area? I have a plugin that adds admin features to my wordpress site but I really want this scheduled to happen every 24 hours. I have the link but obviously am required to be logged in.
Pam M
Do you need that first if statement shown in the sample code? It looks like it would override the ability to schedule and unschedule in the WP Crontrol plugin.
Your example worked nicely when I scheduled the job in the plugin and tested it with the Run Now option. I’ll see if I get an email at the scheduled time too.
Thanks for the helpful background info.
Nigam
Hi
When I am going to refresh the page of WP-Cron Events from wordpress admin then only run the event.