wp cron event run în WordPress

Rulează imediat evenimente WP-Cron: unul anume, toate cele scadente sau toate, util și pentru un cron real pe server.

Sintaxă
wp cron event run [<hook>...] [--due-now] [--exclude=<hooks>] [--all]

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_CRON fă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 exemplu www-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.