WordPress è studiato e sviluppato per essere compatibile con la maggior parte delle configurazioni hosting disponibili nel mondo commerciale, si tratta di un software volutamente in grado di convivere con tutto e tutti, ingegnerizzato in maniera tale da essere autosufficiente anche per ciò che riguarda le operazioni programmate da portare a termine per la pubblicazione degli articoli, la manutenzione, più in generale quei compiti dietro le quinte che difficilmente un autore conosce.
È per questo motivo che il wp-cron.php
può costituire uno svantaggio anziché un vantaggio se eseguito così come inizialmente pensato, l’ideale è passare a un servizio di Cron Job differente, magari quello offerto dal tuo hosting.
wp-cron.php
Cron is the time-based task scheduling system that is available on UNIX systems. WP-Cron is how WordPress handles scheduling time-based tasks in WordPress. Several WordPress core features, such as checking for updates and publishing scheduled post, utilize WP-Cron.
WP-Cron works by: on every page load, a list of scheduled tasks is checked to see what needs to be run. Any tasks scheduled to be run will be run during that page load. WP-Cron does not run constantly as the system cron does; it is only triggered on page load. Scheduling errors could occur if you schedule a task for 2:00PM and no page loads occur until 5:00PM.
continua su developer.wordpress.org/plugins/cron
In parole molto povere WordPress esegue un controllo di tutto quello che deve fare ogni volta che una pagina viene caricata. Ora tu immagina che questo processo impieghi tempo e risorse del server, moltiplica il tutto per il numero di visitatori che hai e per il numero di visite totali che macini. Lo so, ottieni dei valori probabilmente elevati anche se il tuo è un blog di nicchia, un diario personale dove tu e pochi amici siete soliti ritrovarvi, il tutto non fa altro che rallentare il caricamento delle tue risorse, inevitabilmente. Per rimediare hai bisogno di un pannello di controllo Plesk o cPanel, offerto generalmente dal tuo hosting provider, all’interno del quale troverai quasi certamente la possibilità di inserire, modificare e cancellare lavori programmati, i Cron Job.
Disabilitare Cron originale di WordPress
Nulla di più semplice. Apri in modifica il tuo wp-config.php
contenuto nella cartella principale di WordPress (sul tuo spazio FTP), quindi aggiungi questa riga subito dopo define('DB_COLLATE', '');
define('DISABLE_WP_CRON', true);
Salva il file e carica la modifica su FTP, la modifica è immediata.
Abilitare i Cron Job di cPanel
Io mi riferirò al cPanel di ServerPlan che ospita questo blog, la differenza è poca anche se il tuo hosting provider è differente. Accedi al cPanel, cerca i Cron Job e inseriscine uno nuovo partendo dai suggerimenti dati dal tuo pannello e/o modificando a tuo piacimento l’ora programmata per far girare il lavoro di Cron.
Ciò che devi fare è richiamare sì il file wp-cron.php
ma in momenti diversi rispetti alla visita della singola pagina da parte dell’utente dall’altro lato del monitor, devi fare in modo che il server assolva il compito di andare a bussare ai lavori programmati di WordPress ricordando loro che devono andare in porto e terminare in maniera corretta. Per fare questo ti basterà inserire come comando un:
wget -q -O - https://tuodominio.com/wp-cron.php?doing_wp_cron
Sostituisci tuodominio.com
con il tuo vero dominio e attiva il Cron Job. A ogni esecuzione il tuo hosting provider ti invierà un’email contenente l’esito dell’operazione, lasciando che tu possa leggere quanto prodotto in uscita dallo script PHP, è il metodo migliore per capire se è tutto andato a buon fine (potresti non avere riga alcuna prodotta in uscita, sia chiaro). Quando sarai sufficientemente tranquillo e avrai verificato che tutto funziona a dovere potrai allora evitare che l’email ti venga inviata, modifica la stringa del comando da eseguire includendo un >/dev/null 2>&1
finale, quindi:
wget -q -O - https://tuodominio.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Il gioco è fatto. Ora dovrai solo stabilire tu quando far partire l’esecuzione del (o dei) Cron Job. Io ho personalmente stabilito due orari classici di questo blog per i giorni feriali e per quelli del fine settimana, più un controllo generico ogni 30 minuti di ogni giorno:
Di metodi ne esistono anche altri, un’alternativa nel caso in cui tu non abbia a disposizione un pannello e relativa possibilità di creare nuovi Cron Job potrebbe essere easycron.com, altrimenti esistono ulteriori metodi anche tramite plugin di WordPress. Se ne parla in articoli come questo o quest’altro.
A me non resta che augurarti buona giornata e metterti a disposizione l’area commenti per qualsiasi dubbio o ulteriore informazione in merito (magari anche suggerimenti aggiuntivi che vuoi mettere a conoscenza mia e degli altri utenti)! ?
Grazie a it.siteground.com/tutorial/wordpress/vero-cron-job
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)