Ce face wp cron event run
wp cron event run execută acum următorul eveniment programat pentru hook-urile date, fără să aștepte o vizită pe site. Pentru fiecare eveniment afișează cât a durat, iar la final numărul total de evenimente rulate.
Cu --due-now rulează doar evenimentele scadente; respectă transientul doing_cron, ca să nu pornească două rulări în același timp. Această variantă e potrivită pentru un cron real pe server: setezi define( 'DISABLE_WP_CRON', true ); în wp-config.php (WordPress nu mai pornește cron-ul la vizite) și programezi comanda în crontab, de exemplu la fiecare 5 minute.
--all rulează toate evenimentele, inclusiv cele care nu sunt încă scadente. Opțiunea --exclude a apărut în WP-CLI 2.8.0.
Parametri
| Parametru | Descriere |
|---|---|
<hook>... |
Unul sau mai multe hook-uri de rulat. |
--due-now |
Rulează toate evenimentele scadente acum. |
--exclude=<hooks> |
Hook-uri excluse, separate prin virgulă (din WP-CLI 2.8.0). |
--all |
Rulează toate evenimentele programate. |
Exemple
Exemplul 1: Testarea unui eveniment propriu
Rulezi hook-ul pluginului tău fără să aștepți ora programată și vezi cât durează.
wp cron event run dex_trimite_newsletter
Ieșire în terminal
Executed the cron event 'dex_trimite_newsletter' in 1.204s.
Success: Executed a total of 1 cron event.
Exemplul 2: Toate evenimentele scadente
Rulează doar ce trebuia deja să ruleze; restul rămâne programat.
wp cron event run --due-now
Ieșire în terminal
Executed the cron event 'wp_privacy_delete_old_export_files' in 0.004s.
Executed the cron event 'wp_version_check' in 0.412s.
Success: Executed a total of 2 cron events.
Exemplul 3: Cron real pe server, în locul WP-Cron
Linia din crontab (deschis cu crontab -e) rulează la fiecare 5 minute. --quiet ascunde mesajele, ca să nu primești un e-mail la fiecare rulare.
*/5 * * * * cd /var/www/exemplu.ro && wp cron event run --due-now --quiet
Greșeli frecvente
- Activarea
DISABLE_WP_CRONfără un cron real pe server: evenimentele nu mai rulează deloc, iar actualizările automate și articolele programate rămân blocate. - Folosirea
--allîn crontab în loc de--due-now: toate evenimentele rulează la fiecare 5 minute, chiar dacă trebuiau să ruleze o dată pe săptămână. - Programarea comenzii în crontab-ul lui
root: WP-CLI refuză să ruleze ca root fără--allow-root, iar fișierele create de evenimente ar ajunge cu alt proprietar decât serverul web. Pune linia în crontab-ul utilizatorului site-ului (de exempluwww-data).
Comenzi înrudite
wp cron event list: Afișează evenimentele programate în WP-Cron: hook-ul, următoarea rulare și cât de des se repetă.wp-config.php: constante: Fișierul de configurare al WordPress: datele bazei de date, prefixul tabelelor, cheile de securitate, adresele site-ului și alte constante.wp transient: Citește, setează și șterge transients (valori temporare cu expirare) din terminal, inclusiv toate cele expirate.