WP_QUERY gibt einen leeren Satz zurück, wenn er von einem WP-CRON-Ereignis ausgetriggers wird

Ich versuche, einen WP Cron-Zeitplan zu erstellen, um stündlich zu überprüfen, ob wir E-Mail-Erinnerungen an Benutzer senden müssen, die bestimmte Kriterien erfüllen.

Mein Setup sieht so aus

  • Ich habe eine reminders , die sich darum kümmert, alle WP-Abfragefilter durchzuführen und meine E-Mails einzurichten, meine Posts zu aktualisieren, sobald die E-Mail gesendet wurde usw., damit der CPT die angegebenen Kriterien erfüllt.
  • In dieser class habe ich einen Haken in meiner function _construct() , um meine public function do_reminders() zu meinem geplanten Ereignis hinzuzufügen.
  • Mein geplantes Ereignis wurde bei der Aktivierung des Plugins hinzugefügt
  • Ich erstelle mein reminders an init do_reminders ist, so dass das Konstrukt die function do_reminders zum geplanten Hook hinzufügen kann
  • Ich verwende das Core Control- Plugin, um sicherzustellen, dass meine do_reminders function an mein geplantes Ereignis do_reminders ist.

Das Thema

Während das geplante Ereignis ausgeführt wird, sendet es nicht die Erinnerungen, die es sollte.

Wenn ich meine do_reminders function testen do_reminders , indem ich sie in init do_reminders funktioniert sie zwar, aber wenn das schedule-Ereignis do_reminders wird, scheint meine Abfrage eine leere Menge zurückzuliefern.

Also meine Fragen wären, wie kann man das debuggen? Was passiert hier wirklich? Wird das geplante Ereignis ausgetriggers, bevor auf Abfrageobjekte zugegriffen werden kann?

Ich habe versucht zu verstehen, warum meine function funktioniert, wenn ich sie direkt von ‘init’ ausrufe

 add_action( 'init', 'my_test_check'); function my_test_check(){ $reminders = new MY_Reminders(); $reminders->do_reminders(); } 

aber wenn es so heißt

 add_action( 'my_scheduled_hook', 'my_test_check'); function my_test_check(){ $reminders = new MY_Reminders(); $reminders->do_reminders(); } 

Meine Abfrage gibt eine leere Menge zurück, also wird im Grunde nichts ausgesendet! Ich habe keine Ideen mehr, warum das passiert und was ich als nächstes testen soll

Solutions Collecting From Web of "WP_QUERY gibt einen leeren Satz zurück, wenn er von einem WP-CRON-Ereignis ausgetriggers wird"

Ok, ich habe eine Menge Zeit damit verbracht, das zu debuggen! Bei der Suche habe ich $wpdb->queries zusammen mit define( 'SAVEQUERIES', true ); Debuggen von Abfragen, die ausgeführt wurden, als wp-cron ausgeführt wurde.

dann habe ich herausgefunden, dass bei Cron-Jobs meine Abfrage auf 'post_status' => trash ! Kein Wunder, dass ich keine Fehler bekommen habe und wie es sich herausstellt, habe ich neulich eine spezifische Abfrage ausprobiert und es gab diese function immer noch in meinem theme functions.php und betrifft nur nicht eingeloggte Benutzer, die mein cron überschrieben haben Abfrage!

Lange Rede, kurzer Sinn, nichts mit wp-cron oder wp_query (und sogar meinem Code) zu tun, nach den Tests aufräumen (ich sollte besser wissen: facepalm) und Debugging-Tools nutzen, um den Täter zu finden!