Ini semacam pertanyaan bodoh ...
Saya menjadwalkan tindakan untuk dijalankan setiap jam:
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!';
}
Bagaimana saya bisa menguji apakah ini berfungsi tanpa menunggu satu jam? :)
Saya mencoba menambahkan wp_clear_scheduled_hook('my_hourly_events');
sebelum kode ini dan menambahkan wp_cron()
setelah, tetapi saya tidak melihat fungsi saya berjalan ...
edit:
ok, saya menambahkan trigger_error()
di dalam fungsi saya, memeriksa log kesalahan apache, dan itu ada di sana :)
Jadi sekarang saya bahkan lebih bingung:
Bagaimana menjalankan wp-cron di latar belakang? karena ternyata itulah yang terjadi jika saya tidak melihat output ...
ini tampaknya tidak berfungsi dalam konteks objek; Mengapa?
wp_remote_post()
. itu menjelaskan semuanya ...array( &$this, 'my_method_name' )
? Itu memang tidak akan berfungsi karena nama fungsi disimpan dalam database untuk dieksekusi nanti.&$this
merujuk ke objek tertentu, bukan nama kelas, dan objek ini tidak akan ada pada permintaan berikutnya ketika pekerjaan cron dijalankan. Fungsi kelas statis harus berfungsi.Jawaban:
Plugin favorit saya untuk itu adalah Core Control yang memiliki modul yang sangat bagus untuk menampilkan apa yang sedang terjadi di cron - acara mana yang diatur, kapan mereka akan menembak, dll.
Agar tangan Anda kotor
_get_cron_array()
, lihat , yang mengembalikan data yang tersimpan internal untuk acara cron (tingkat atas kunci adalah cap waktu).sumber