- サイトデザイン工事中です。ご意見をお寄せください。
- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
関数リファレンス/wp schedule event
提供:WordPress Codex 日本語版
< 関数リファレンス
指定された一定の期間をおいてWordPressのコアファイルによって実行されるアクションを登録します。アクションは誰かがサイトを訪れたときに、予定されていた時間をすぎていた場合、実行されます。フックのリストはプラグイン APIをご覧下さい。
使用法
<?php wp_schedule_event($timestamp, $recurrence, $hook, $args); ?>
パラメータ
- $timestamp
- (integer) (必須) 最初にイベントを発生させる時刻。これはUNIXタイムスタンプ型である必要があります。
- 初期値: なし
- $recurrence
- (string) (必須) どれぐらいの頻度でイベントを発生させるか。有効な値:
- hourly
- twicedaily
- daily
- 初期値: なし
- $hook
- (string) (必須) 実行するアクションフックの名前
- 初期値: なし
- $args
- (array) (optional) フックした関数に渡す引数
- 初期値: なし
使用例
1時間ごとに実行されるイベントを登録する
一時間ごとに実行されるイベントをプラグインに登録するには、wp_schedule_eventをプラグイン有効化時に呼び出してください。(そうしないと、たくさんのスケジュール・イベントが登録されることになります!)
register_activation_hook(__FILE__, 'my_activation');
add_action('my_hourly_event', 'do_this_hourly');
function my_activation() {
wp_schedule_event(time(), 'hourly', 'my_hourly_event');
}
function do_this_hourly() {
// do something every hour
}
スケジュールを解除することも忘れないでください:
register_deactivation_hook(__FILE__, 'my_deactivation');
function my_deactivation() {
wp_clear_scheduled_hook('my_hourly_event');
}
毎時間のイベントを実現する簡単な方法
この例では、プラグインの有効化には反応せず、イベントがない場合にだけ登録します。
add_action('my_hourly_event', 'do_this_hourly');
function my_activation() {
if ( !wp_next_scheduled( 'my_hourly_event' ) ) {
wp_schedule_event(time(), 'hourly', 'my_hourly_event')
}
}
add_action('wp', 'my_activation');
function do_this_hourly() {
// do something every hour
}
その他の情報
- wp_schedule_event
- wp_schedule_single_event
- wp_clear_scheduled_hook
- wp_next_scheduled
- wp_unschedule_event
- wp_get_schedule
もっと詳しく
How cronjobs work in wordpress
Scheduling Tasks in WordPress: a Plugin Developer’s Guide
関数リファレンス も参考になります。