Come sostituire il cron di WordPress con un vero Cron Job
Poiché WordPress deve funzionare su diversi tipi di piattaforme, sistemi operativi e configurazioni, non sempre può affidarsi al fatto che ci sia un servizio di cronjob sul server che possa gestire questo tipo di richiesta. Per questo gli sviluppatori di WordPress hanno creato una soluzione, il file wp-cron.php nella tua cartella principale di WordPress che viene eseguito ogni volta che qualcuno carica una pagina. Questo verificherà se sono presenti operazioni da eseguire e, se necessario, li esegue.
Tuttavia, in alcuni casi, questo file potrebbe diventare il bersaglio di un attacco DDOS, oppure alcuni plugin di caching potrebbero interferire con la sua esecuzione e potrebbe causare un aumento del carico del server oppure potrebbe far sì che le operazioni pianificate non vengano eseguite correttamente. Ecco perché è opportuno sostituire l’esecuzione del file con un vero cron job.
Prima di tutto, dovrai disabilitare l’esecuzione dello script ad ogni apertura di pagina. Per farlo, apri il file wp-config.php nella tua cartella WordPress principale ed aggiungi la seguente riga prima di”/* That’s all, stop editing! Happy publishing. */” :
define('DISABLE_WP_CRON', true);
Una volta fatto questo, dovrai impostare un vero e proprio cron job ed associarlo all’esecuzione del file wp-cron.php. È necessario non eseguirlo troppo frequentemente, 30 minuti dovrebbero essere sufficienti per la maggior parte dei siti web. Per farlo, vai su Site Tools > Sviluppatori > Cron Job.
Poi, aggiungi questo comando da eseguire ogni 30 minuti:
cd /home/customer/www/domain.com/public_html; wp cron event run --due-now >/dev/null 2>&1
Sostituisci /home/customer/www/domain.com/public_html con il percorso effettivo della tua applicazione WordPress. Rimuovi la parte “>/dev/null 2>&1” dal comando sopra se vuoi ricevere notifiche via email dall’esecuzione del cron job.
Il tool Cron job prevede già alcune opzioni preimpostate pertanto puoi selezionare “Due volte all’ora” dal menù a tendina.