質問: ウィジェットからのcronイベントのスケジュール ウィジェット内からcronジョブを設定するために wp_schedule_event() を使用できますか?私は試しましたが、うまく動作させることができません。問題は$ hookパラメータのようです。フックしようとしている関数はウィジェットクラス内にあるので、wpはそれを見つけることができません。どちらもうまくいきません。wp_schedule_event(time(), 'daily', 'my_widget_cron'); wp_schedule_event(time(), 'daily', array(&$this, 'my_widget_cron')); 何か案は?
回答: wp_schedule_eventは関数ではなくパラメータとしてフックを取ります。試してください:wp_schedule_event(time(), 'daily', 'my_daily_event'); add_action('my_daily_event', array(&$this, 'my_widget_cron')); if ( !wp_next_scheduled( 'my_daily_event' ) ) { wp_schedule_event(time(), 'hourly', 'my_daily_event') } サイドバーからウィジェットを削除しても、cronは引き続き実行されます。あなたはそれをクリアするために(ウィジェットクラスの外で)次のコードを実行することができます:if ( !is_active_widget('your_widget_callback_function') && wp_next_scheduled( 'my_daily_event' ) ) { wp_clear_scheduled_hook('my_daily_event'); }