wp-cron è la versione di WordPress di un cron job e un cron job è un'attività che viene eseguita in base a una pianificazione, sia solo una volta in una data e ora particolare o su base ricorrente, come ogni giorno alle 15:00 o ogni ora su il 15° minuto.
I tradizionali processi cron di Linux vengono eseguiti esattamente all'ora e alla data in cui sono configurati per l'esecuzione, proprio come la funzione Utilità di pianificazione in Windows. Tuttavia, nella maggior parte degli ambienti di hosting, WordPress non ha accesso completo al sistema per potersi aggiungere ai cron job del sistema operativo, che è necessario affinché le attività si attivino esattamente alla data e all'ora configurate.
Per ovviare a questo, WordPress utilizza un approccio best-effort ("il più vicino possibile") alla pianificazione delle attività. Ogni volta che un visitatore visualizza una pagina non memorizzata nella cache del server sul sito Web (come ogni pagina di amministrazione o il carrello di WooCommerce), WordPress verifica se è necessario eseguire qualcosa in wp-cron e, in tal caso, procede con l'esecuzione attraverso quelle attività pianificate in background e serve anche la pagina normale che è stata richiesta.
Lo svantaggio di questo approccio best-effort è che se la maggior parte del traffico del tuo sito colpisce le pagine memorizzate nella cache (il che è ottimale per le prestazioni), wp-cron non avrà l'opportunità di essere eseguito perché non si sta verificando alcuna elaborazione dinamica per attivarlo. Per risolvere questo problema, ti consigliamo di configurare un vero lavoro cron di sistema in Plesk per attivare wp-cron. Ti guideremo attraverso questo processo di seguito.
Eventi programmati WooCommerce
Se stai utilizzando WooCommerce, ha anche una propria coda di eventi programmati, ma si basa su wp-cron per funzionare.
WooCommerce ha un'eccellente guida alla risoluzione dei problemi di wp-cron (indipendentemente dal fatto che tu stia utilizzando WooCommerce o meno) qui. Ti consigliamo vivamente di provarlo se pensi di avere problemi con wp-cron.
Impostazione di wp-cron come reale lavoro cron con Plesk
Tempo necessario: 5 minuti.
Se sospetti di avere problemi con un'attività cron, può essere molto utile disaccoppiare le normali visualizzazioni di pagina, come le persone che aggiungono cose al carrello o effettuano il check-out con WooCommerce, o qualsiasi visualizzazione di pagina se non stai utilizzando la memorizzazione nella cache, da wp-cron, poiché non vuoi che le attività pianificate interferiscano con azioni importanti come il check-out di un cliente.
Ecco come farlo sull'hosting Plesk:
- Disattiva wp-cron attivato automaticamente
Per disabilitare l'attivazione automatica del cron job di WordPress, apri il wp-config.php file nella root dell'installazione di WordPress. Puoi modificare il file wp-config.php tramite FTP o Plesk File Manager. Cerca la riga che dice
define('DB_COLLATE', '');
e subito sotto (o sotto l'area Altre personalizzazioni), aggiungi quanto segue su una riga a parte:define('DISABLE_WP_CRON', true);
- Imposta un'attività pianificata in Plesk
Accedi a Plesk e scegli Siti web e domini> Attività pianificate> Aggiungi attività. Scegli l'opzione Recupera un URL e inserisci l'URL come:https://yourdomain.com/wp-cron.php
Imposta la tua pianificazione in modo che venga eseguita ogni ora (su un VPS puoi inserire una pianificazione molto più frequente, tuttavia sull'hosting condiviso un'attività pianificata molto frequente sarà probabilmente terminata automaticamente in un prossimo futuro).