To głupie pytanie ...
Zaplanowałem uruchamianie akcji co godzinę:
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!';
}
Jak mogę sprawdzić, czy to działa bez czekania przez godzinę? :)
Próbowałem dodać wp_clear_scheduled_hook('my_hourly_events');
przed tym kodem i dodać wp_cron()
później, ale nie widzę, aby moja funkcja działała ...
edytować:
ok, dodałem funkcję trigger_error()
wewnątrz, sprawdziłem dziennik błędów apache i już tam jest :)
Więc teraz jestem jeszcze bardziej zdezorientowany:
Jak wp-cron może działać w tle? ponieważ najwyraźniej tak się dzieje, jeśli nie widzę żadnych danych wyjściowych ...
to nie wydaje się działać w kontekście obiektowym; czemu?
wp_remote_post()
. to wyjaśnia wszystko ...array( &$this, 'my_method_name' )
? To rzeczywiście nie zadziała, ponieważ nazwa funkcji jest przechowywana w bazie danych do późniejszego wykonania.&$this
odnosi się do konkretnego obiektu, a nie do nazwy klasy, i ten obiekt nie będzie istniał przy następnym żądaniu, gdy zadanie cron zostanie wykonane. Funkcja klasy statycznej powinna działać.Odpowiedzi:
Moim ulubionym pluginem jest Core Control, który ma bardzo ładny moduł do wyświetlania tego, co dzieje się w cronie - które zdarzenia są konfigurowane, kiedy będą uruchamiane itp.
Po zabrudzeniu rąk sprawdź
_get_cron_array()
, który zwraca wewnętrznie przechowywane dane dla zdarzeń cron (najwyższy poziom kluczy to znaczniki czasu).źródło