定期的に自動処理させる

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]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください