wp_schedule_event()


WordPressのwp_schedule_event()関数は、指定された間隔でカスタムイベントをスケジュールするために使用されます。この関数を使うことで、特定のタスクを定期的に実行できます。

構文

wp_schedule_event( int $timestamp, string $recurrence, string $hook, array $args = array() );

引数の説明:

  • $timestamp (int) — イベントが最初に実行されるタイムスタンプ(Unix形式)。
  • $recurrence (string) — イベントの実行間隔を指定するスケジュール(例: ‘hourly’, ‘daily’, ‘twicedaily’)。
  • $hook (string) — フック名。この名前を使用してイベントを識別します。
  • $args (array) — オプション。イベントに渡す引数の配列。

使用例

例1: 毎日タスクを実行

次のコードは、毎日午前3時にカスタムイベントをスケジュールします。

wp_schedule_event( strtotime('03:00:00'), 'daily', 'my_daily_event' );

例2: カスタム間隔でのスケジュール

カスタムの間隔を追加してタスクをスケジュールする例です。

add_filter( 'cron_schedules', function( $schedules ) {
    $schedules['five_minutes'] = array(
        'interval' => 300,
        'display'  => 'Every 5 Minutes'
    );
    return $schedules;
} );
wp_schedule_event( time(), 'five_minutes', 'my_custom_event' );

例3: 引数を渡すイベント

イベントにカスタム引数を渡す方法の例です。

wp_schedule_event( time(), 'hourly', 'my_hook_with_args', array( 'user_id' => get_current_user_id() ) );

例4: イベントの削除

イベントが不要になった場合はwp_clear_scheduled_hook()を使用して削除できます。

wp_clear_scheduled_hook( 'my_daily_event' );

例5: スケジュールされたイベントのリストを確認

登録されたイベントを取得して確認する例です。

$cron = _get_cron_array();
foreach ( $cron as $timestamp => $hooks ) {
    foreach ( $hooks as $hook => $args ) {
        echo $hook;
    }
}

注意事項

  • wp_schedule_event()を呼び出す前に、同じフック名で既にイベントがスケジュールされていないか確認する必要があります。
  • 間違ったタイムスタンプや間隔を設定すると、期待した動作をしない場合があります。
  • タスクが定期的に実行されない場合、サーバーのWP Cronが正しく設定されていることを確認してください。

関連機能: