Cron è una utility Unix/Linux che viene normalmente utilizzata per pianificare comandi o uno script su un server web eseguito in background. Un cron job è il task stesso, che viene utilizzato per programmare attività periodiche a orari, date o intervalli fissi. In genere si tratta di attività ripetitive automatizzate per risparmiare tempo. In WordPress, questo lavoro è gestito da WP-Cron, che viene utilizzato per simulare un cron di sistema.

Alcuni esempi di cron job in WordPress potrebbero riguardare la pianificazione di un post da pubblicare o l’esecuzione di un plugin di backup in base ad una pianificazione predefinita. Oggi vedremo come creare, modificare ed eseguire facilmente un cron job in WordPress.

Come Impostare un Cron Job WordPress

È importante notare che WP-Cron è leggermente diverso da un cron di sistema ed entrambi presentano i propri pro e contro. Ad esempio, WP-Cron si basa interamente su intervalli, mentre un cron di sistema si basa su tempi specifici. Un WP-Cron, inoltre, funziona solo quando la pagina è caricata (back-end o front-end), cosa che potrebbe essere meno affidabile. Gli intervalli predefiniti forniti da WordPress sono intervalli orari, giornalieri e da due volte al giorno.

Per programmare eventi WP-Cron dovete creare hook personali. Vi consigliamo di leggere il manuale ufficiale dei plugin di WordPress, dove troverete una guida straordinaria sulla programmazione degli eventi WP Cron. Se state cercando un modo alternativo per configurare un cron di sistema con WordPress, vi consigliamo di leggere l’articolo di Tom Mcfarlin sulla definizione di un cron job di WordPress. E, per coloro che forse non sono così avanzati, vediamo come utilizzare facilmente WP-Cron grazie al popolare plugin gratuito WP Crontrol. Quest’ultimo consente di visualizzare e controllare ciò che accade nel sistema WP-Cron.

Il plugin di WordPres WP Control

Il plugin di WordPres WP Control

WP Crontrol vanta oltre 80.000 installazioni attive, con una impressionante valutazione di 4.9 stelle su 5. È davvero un plugin amato da molti nella community di WordPress.

Questo plugin è super utile. Mostra quali CRON jobs devono essere eseguiti, ottimo primo passo per capire cosa sta succedendo e se funziona o meno. 5 stelle davvero. Inoltre, potete creare nuovi cron job e attivare quelli esistenti, val bene 5 stelle. — Josh, creatore di Caldera Forms

Potete scaricarlo dalla repository di WordPress o cercarlo all’interno della dashboard di WordPress, alla voce “Aggiungi nuovo” plugin. Le caratteristiche di WP Control comprendono:

  • Possibilità di visualizzare tutti gli eventi cron con i loro argomenti, ricorrenza e tempo di esecuzione successivo.
  • Modifica, eliminazione e avvio immediato di qualsiasi evento cron.
  • Aggiunta di nuovi eventi cron.
  • Aggiunta, modifica e rimozione dei cron personali.

Server Cron

Se siete clienti di Kinsta, saprete che abbiamo in esecuzione un processo cron del server che viene eseguito su tutti i siti ogni 15 minuti. Date un’occhiata al nostro articolo su come gestire i cron del server su Kinsta.

Programmazioni WP-Cron

Una volta attivato il plugin, potrete modificare le programmazioni dei Cron job di WordPress in “Programmazioni Cron” dalle impostazioni del pannello di amministrazione di WordPress. Si noti che il plugin aggiunge una pianificazione predefinita aggiuntiva settimanale. È inoltre possibile creare programmi aggiuntivi in ​​secondi, ad esempio 21600 secondi ogni 6 ore.

Programmazioni WP-Cron

Programmazioni WP-Cron

Questi intervalli possono anche essere aggiunti con del codice utilizzando un filtro, come ad esempio:

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;
 }

Eventi WP-Cron

Potete anche utilizzare il plugin per visualizzare i Cron job di WordPress che sono già programmati. Alla voce Strumenti, fate clic su “Eventi Cron”. Molti dei nomi delle azioni sono facilmente riconoscibili poiché devono corrispondere a una parte del nome del plugin, ad esempio “woocoomerce_cleanup_sessions” o “gravityforms_cron”.

Eventi WP-Cron

Eventi WP-Cron

Potrete eseguire immediatamente un evento Cron semplicemente facendo clic su “Esegui ora” accanto al nome dell’azione. Questo può essere utile quando si risolvono alcuni problemi, in quanto potrebbe essere necessario eseguire un evento Cron più volte.

Eventi Cron eseguiti con successo

Eventi Cron eseguiti con successo

Modificare un Evento Cron

Potete anche modificare eventi Cron esistenti, facendo clic su “Modifica” accanto al nome dell’azione. Potrete quindi modificare il nome dell’azione, gli argomenti, l’esecuzione successiva e la ricorrenza pianificata. Fate attenzione con questa funzionalità, perché molti plugin si basano sui loro Cron job per funzionare correttamente.

Modifica Evento Cron

Modifica Evento Cron

Aggiungere un Evento Cron

Potete anche aggiungere eventi Cron. In questo esempio, aggiungeremo il Cron job di WordPress per il plugin Disqus. Molti potrebbero volerlo fare per modificare la frequenza di sincronizzazione oppure per risolvere problemi con la sincronizzazione dei commenti in un senso o nell’altro. La documentazione di ogni plugin di terze parti dovrebbe fornire il nome del proprio evento cron o, meglio, il nome dell’azione. In questo caso il plugin utilizza il nome “dsq_sync_forum“.

Se ne state creando uno da zero, avrete bisogno di un corrispondente action hook da qualche parte nel vostro codice, ad esempio nel file functions.php. Questo è l’esempio che fornisce WP-Crontrol:

add_action( 'my_hookname', 'my_function' );

Il passo successivo è la definizione della vostra funzione.

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

Per Disqus, per prima cosa aggiungiamo un nuovo programma cron di 600 secondi (10 minuti). Facciamo quindi clic su “Aggiungi evento Cron” e inseriamo “dsq_sync_forum” come nome della nostra azione, scegliamo la prossima ora di esecuzione e la ricorrenza di 10 minuti. Quindi clicchiamo su “Aggiungi evento Cron”. Questo evento ora sarà eseguito automaticamente ogni 10 minuti per consentirci di sincronizzare manualmente i commenti di Disqus sul nostro database di WordPress.

Aggiungi evento Cron in WordPress

Aggiungi evento Cron in WordPress

E questo è tutto! È davvero abbastanza facile da usare.

WP-Cron con WP-CLI

È inoltre possibile gestire gli eventi WP-Cron e/o un Cron job di WordPress in WP-CLI. Ad esempio, il seguente comando vi fornirà l’elenco degli eventi cron correnti.

wp cron event list
Lista eventi wp-cron

Lista eventi wp-cron

Leggete la documentazione ufficiale di WP-CLI cron per altri comandi e parametri.

65
Condivisioni