[WordPress] プラグインから定期的に処理をさせる方法(疑似 cron) | Sun Limited Mt.
http://codex.wordpress.org/Function_Reference/wp_schedule_event
WordPress へのアクセスをトリガーとして、その時に実行すべき処理が実行するべき時間を過ぎていれば実行されるという疑似 cron です。厳密に時間を指定することは(特にアクセスの少ないブログではなおさら)無理ですがざっくりとしたバッチ処理などはこれで実行させることができます。wp_schedule_event で実行する処理と実行間隔を指定して、wp_clear_scheduled_hook で登録されている処理をキャンセルします。
wp_schedule_event(time(), ‘hourly’, ‘my_schedule_hook’);
第1引数は最初に実行する時間
第2引数は実行間隔
第3引数は実行する処理のフック名実行間隔は、毎時 ‘hourly’、日に2回 ‘twicedaily’、毎日 ‘daily’ とあります。その他に自分で設定を増やすこともできます。
気をつけないと行けないのが wp_schedule_event で指定する第三引数は処理のフック名なので、add_action でこのフック名に実行するアクションを指定しないといけません。
add_action(‘my_cron’, ‘my_cron_do’);
function my_activation() {
wp_schedule_event(time(), ‘hourly’, ‘my_cron’);
}
register_activation_hook(__FILE__, ‘my_activation’);
function my_deactivate() {
wp_clear_scheduled_hook(‘my_cron’);
}
register_deactivation_hook(__FILE__, ‘my_deactivate’);
function my_activation() {
wp_schedule_event(time(), ‘hourly’, ‘my_cron’);
}
register_activation_hook(__FILE__, ‘my_activation’);
function my_deactivate() {
wp_clear_scheduled_hook(‘my_cron’);
}
register_deactivation_hook(__FILE__, ‘my_deactivate’);
日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)