WordPressに用意されている擬似CRONのようなものを使って、定期的な自動処理を実行することができる。
wp_schedule_event()で時間を指定して、独自のアクションフックを発生させる。
実行のタイミングは、毎時(hourly)か毎日(daily)。
毎日、午前5時に設定する場合
[sourcecode language=’php’]
$timenow = time();
$year = date(‘Y’, $timenow);
$month = date(‘n’, $timenow);
$day = date(‘j’, $timenow);
$hours = 5;
$minutes = 0;
$seconds = 0;
$schedule = mktime($hours, $minutes, $seconds, $month, $day, $year);
wp_schedule_event($schedule, ‘daily’, ‘everyday_myevent’);
[/sourcecode]
設定した時間になるとeveryday_myeventが発生するので、処理を関連づけておく。
[sourcecode language=’php’]
add_action(‘everyday_myevent’, ‘run_myschedule’);
function run_myschedule() {
// 処理
}
[/sourcecode]
解除する場合
[sourcecode language=’php’]
wp_clear_scheduled_hook(‘everyday_myevent’);
[/sourcecode]
状態を取得する場合
[sourcecode language=’php’]
if($next_scheduled = wp_next_scheduled(‘everyday_myevent’)){
$next = date(‘Y-m-d H:i:s’, $next_scheduled);
}
[/sourcecode]