Das ist eine dumme Frage ...
Ich habe eine Aktion geplant, die stündlich ausgeführt wird:
if(!wp_next_scheduled('my_hourly_events'))
wp_schedule_event(time(), 'hourly', 'my_hourly_events');
add_action('my_hourly_events', 'the_function_to_run');
function the_function_to_run(){
echo 'it works!';
}
Wie kann ich testen, ob dies funktioniert, ohne eine Stunde zu warten? :)
Ich habe versucht, wp_clear_scheduled_hook('my_hourly_events');
vor diesem Code und wp_cron()
nach diesem Code einzufügen , aber meine Funktion wird nicht ausgeführt ...
bearbeiten:
ok, ich habe ein trigger_error()
inside meiner Funktion hinzugefügt , das Apache-Fehlerprotokoll ausgecheckt und es ist da :)
Jetzt bin ich noch verwirrter:
Wie kann der wp-cron im Hintergrund laufen? denn anscheinend passiert das, wenn ich keine Ausgabe sehe ...
Dies scheint in einem Objektkontext nicht zu funktionieren. Warum?
wp_remote_post()
. das erklärt alles ...array( &$this, 'my_method_name' )
? Das wird in der Tat nicht funktionieren, da der Funktionsname in der Datenbank gespeichert ist, um später ausgeführt zu werden.&$this
verweist auf ein bestimmtes Objekt, nicht auf einen Klassennamen, und dieses Objekt ist bei der nächsten Anforderung nicht vorhanden, wenn der Cron-Job ausgeführt wird. Eine statische Klassenfunktion sollte funktionieren.Antworten:
Mein Lieblings-Plugin dafür ist Core Control, das ein sehr nettes Modul zur Anzeige dessen hat, was im Cron vor sich geht - welche Ereignisse werden eingerichtet, wann werden sie das nächste Mal ausgelöst usw.
Wenn Sie sich die Hände schmutzig machen, sehen Sie
_get_cron_array()
, welche internen Daten für Cron-Ereignisse zurückgegeben werden (oberste Schlüsselebene sind Zeitstempel).quelle