Cron è un’utilità UNIX standard per programmare l’esecuzione di un compito (script o comando) ad una data, ora o intervallo specifico. Il compito che sta per essere eseguito è noto come cron job. Come si può intuire, lo scopo di un cron job è quello di automatizzare le attività ripetitive in modo da poter utilizzare il vostro tempo in modo più produttivo.
Tuttavia, il cron job di WordPress è leggermente diverso dal cron standard, ed è per questo che prima di tuffarsi nell’azione e nel processo, è necessario capire cos’è un cron WordPress e come funziona.
- Che cos’è WordPress Cron?
- Come gestire un cron job di WordPress
- Come gestire WordPress Cron Jobs con Plugin
- Passo 1: Installare WP Control Plugin
- Step 2: Visualizza e comprendi Cron Events
- Step 3: Modifica Cron Event
- Passo 4: Aggiungere un intervallo di tempo personalizzato
- Step 5: Aggiungere un nuovo evento cron
- Come gestire i Cron Jobs di WordPress con WP CLI
- Come impostare un vero Cron Job
- Step 1:Aprire e modificare il file wp-config.php
- Step 2: Aggiungere un nuovo Cron Job al server
- Parole finali!
Che cos’è WordPress Cron?
WordPress ha un proprio sistema cron per programmare attività come il controllo degli aggiornamenti, la programmazione di un post per la pubblicazione e la cancellazione dei commenti dal cestino. Tutti i lavori cron sono gestiti da WP-Cron.
Mentre il nome (e l’idea principale) deriva da UNIX cron, WP-Cron non funziona così e usa intervalli di tempo per la programmazione dei compiti. Gli intervalli di tempo predefiniti forniti da WordPress sono ogni ora, due volte al giorno, ogni giorno e ogni settimana. Qui, i compiti basati sul tempo dipendono dagli utenti che visitano il tuo sito, il che significa che WP-Cron verrà eseguito solo se un utente visita il tuo sito web.
In altre parole, WP-Cron viene eseguito quando la pagina si carica. A volte questo non è così affidabile, ed è per questo che molti utenti preferiscono un cron job a livello di server rispetto al lavoro WP-Cron.
In questo articolo, ti mostrerò come gestire i cron job di WordPress e impostare un vero cron job per il tuo sito WordPress.
Come gestire un cron job di WordPress
Ci sono molti modi per impostare e gestire i cron job di WordPress, ma vi mostrerò due metodi popolari.
Il primo utilizza un plugin di gestione cron come WP Crontrol che consente di aggiungere, modificare e gestire i cron job di WordPress direttamente dalla dashboard di WP. È anche possibile creare un cron job, costruire ganci e funzioni, e definire intervalli di tempo personalizzati per le attività.
E il secondo metodo è con WordPress CLI.
Come gestire WordPress Cron Jobs con Plugin
Io userò WP Crontrol plugin che consente di visualizzare e controllare WP cron jobs per la vostra applicazione WordPress. È il popolare plugin utilizzato per gestire WP cron jobs e ha più di 100.000 installazioni attive.
Questo è il metodo più semplice per gestire WordPress cron jobs e si può rapidamente visualizzare, modificare, creare, eliminare, e può fare molto di più con WP cron eventi.
Perciò iniziamo!
Passo 1: Installare WP Control Plugin
Proprio come qualsiasi altro plugin, è necessario installare WP Crontrol dal repository dei plugin e attivarlo. Una volta installato, noterai che una nuova opzione “Cron Events” è apparsa nella scheda Strumenti.
Step 2: Visualizza e comprendi Cron Events
Poi, è necessario fare clic su Cron Events e vedrai un elenco di eventi cron che sono in esecuzione sulla tua applicazione WordPress.
Da questa sezione, è possibile eseguire, modificare e cancellare gli eventi cron. Vedrai questa opzione quando passi il mouse su qualsiasi evento cron.
Troverai anche informazioni utili su questi cron job, e identificherai rapidamente quale cron job è usato per quale scopo e molto altro. Nella prima colonna, Hook mostra il nome dell’hook utilizzato dal core di WordPress o da qualsiasi plugin. Per esempio, il prefisso “wp” mostra semplicemente che è un cron del core di WordPress. Noterai anche che non c’è un’opzione per cancellare questi eventi cron, tuttavia è possibile utilizzare le opzioni di modifica ed esecuzione ora. Allo stesso modo, per i tuoi plugin, noterai che vengono utilizzati altri prefissi (per esempio, per WooCommerce, “wc” o “woocommerce”).
La seconda colonna Arguments contiene solo gli argomenti che vengono passati alle funzioni hook.
La terza colonna mostra quando questo cron job verrà eseguito la prossima volta.
La quarta colonna Action mostra l’azione che questo cron eseguirà (la “funzione” del cron job).
L’ultima colonna definisce i tempi di ricorrenza dei cron job. Questo è fondamentalmente l’intervallo di tempo per l’attività programmata.
Step 3: Modifica Cron Event
Ora modifichiamo un cron job WP per testare questo plugin.
Vai al nome di un hook e clicca su modifica. Si aprirà una nuova sezione “Edit Cron Event” dove vedrai diversi campi. Nel mio caso, ho modificato il gancio “wp_privacy_delete_old_export_files”. Poi, cambierò la ricorrenza di questo cron job a “Ogni quindici minuti”.
Passo 4: Aggiungere un intervallo di tempo personalizzato
Poi, ti mostrerò come aggiungere un intervallo di tempo personalizzato per i tuoi eventi cron. Per questo, clicca sulla scheda “Cron Schedule” e apparirà una nuova schermata dove vedrai i dettagli degli intervalli di tempo programmati. Poi, scorri verso il basso fino al fondo dove vedrai “Add Cron Schedule”. Compila i campi e clicca su Add Cron Schedule.
Nota che l’input per l’intervallo è in secondi. Io userò 600 secondi per impostare l’intervallo a 10 minuti.
Ora puoi modificare il tuo evento cron e sostituirlo con il tuo intervallo personalizzato.
Step 5: Aggiungere un nuovo evento cron
Ora sai come gestire i compiti semplici per i tuoi eventi cron ma cosa succede se vuoi aggiungere il tuo lavoro cron per la tua applicazione WordPress. Non preoccupatevi è così semplice e tutto quello che dovete fare è seguire le istruzioni qui sotto.
Prima di tutto, cliccate su Add Cron Event e entrerete nella sezione add cron. Poi, basta dare un nome al gancio come si desidera (dovrebbe seguire la normale convenzione di denominazione PHP e senza spazi).
Poi, aggiungere argomenti (è opzionale) e nel mio caso è vuoto. E poi, seleziona una qualsiasi opzione e metti un tempo nel campo Next Run. Infine, scegli un tempo di ricorrenza (tempo di pianificazione) per il tuo nuovo cron e fai clic su Aggiungi evento.
Se hai qualche domanda riguardo a questo, puoi controllare le impostazioni di qualsiasi lavoro cron in esecuzione dai tuoi eventi cron.
Dopo aver aggiunto un nuovo lavoro cron, vai alla scheda eventi cron e controlla il cron appena creato. Noterai che nella colonna dell’azione ti mostrerà None (errore). Questo perché non hai definito alcuna azione per questo cron job. Pertanto è necessario scrivere alcune righe di codice nel file functions.php del tema e aggiungere un’azione.
Nota: Prima di andare avanti, è altamente raccomandato il backup del sito WordPress.
Apriamo il file e aggiungiamo le seguenti righe di codice subito dopo <?php:
add_action( 'cloudways_new_cron', 'cw_function' );function cw_function() {wp_mail( '[email protected]', 'Cloudways Cron', 'Cloudways - a Managed Cloud Hosting!' );}
Non dimenticate di sostituire il mio indirizzo email con il vostro.
Si può vedere nell’immagine qui sopra, l’ho modificato direttamente con la dashboard di WordPress. Se vuoi, puoi modificare questo file tramite un client FTP come FileZilla.
Prossimo, controlliamo la casella di posta elettronica e vediamo se stiamo ricevendo il messaggio.
Tada! E’ fatta e abbiamo aggiunto con successo un nuovo evento cron.
Come gestire i Cron Jobs di WordPress con WP CLI
Puoi anche visualizzare e gestire tutti i tuoi cron jobs di WordPress da WordPress CLI. Su Cloudways, è necessario avviare il terminale e accedere con le credenziali del server.
Poi, inserire il percorso della vostra applicazione WordPress. Nel mio caso, l’URL era :
cd applications/urrghmpqks/public_html/
In seguito, è necessario eseguire questo comando:
wp cron event list
Si può vedere il nome del gancio, il tempo di esecuzione successivo, la prossima esecuzione relativa, e la ricorrenza (tempo previsto).
Come impostare un vero Cron Job
Ora, sapete cos’è il cron job di WordPress e come funziona. Che cosa succede se si desidera sostituire con un vero e proprio cron job a causa di qualsiasi motivo come il basso traffico, compiti importanti che devono essere eseguiti in un momento particolare, eccessivi attacchi DDoS, o alto tempo di caricamento della pagina.
Quindi iniziamo!
Step 1:Aprire e modificare il file wp-config.php
Prima, è necessario aprire il file wp-config utilizzando un client FTP come FileZilla o SSH client come puTTY. Dopo di che, modificate il file e mettete la seguente linea di codice prima della linea dove dice /* Questo è tutto, smettete di modificare! Buon blogging! */
Codice:
define('DISABLE_WP_CRON', true);
Questo codice disabilita gli eventi cron in esecuzione sul tuo sito WordPress e ora puoi creare un vero cron job.
Step 2: Aggiungere un nuovo Cron Job al server
Poi, accedi alla tua piattaforma Cloudways poi vai al pannello Gestione Applicazioni > Gestione Cron Job > Sezione Avanzata.
Poi aggiungete il seguente comando e cliccate su Save Changes:*/5 * * * * wget -q -O - 'https://wordpress-413270-1299955.cloudwaysapps.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Nel comando di cui sopra, prima, ho definito un intervallo di cinque minuti per il cron job. Puoi usare questo sito per controllare l’espressione dell’intervallo di tempo. Nel mio caso, */5 * * * *
è l’espressione dell’intervallo.
Congratulazioni! Hai aggiunto con successo un vero cron job.
Parole finali!
Spero che questo articolo ti abbia aiutato a capire come funziona il cron job di WordPress. Ho discusso due metodi per gestire il cron job di WordPress; uno attraverso un plugin e l’altro attraverso WP-CLI. Ho anche discusso su come impostare un vero cron job su un server live.