每天在特定时间运行一个函数

我有一个从 API 获取数据的函数。我想在每天的特定时间运行此功能。我已经使用下面的代码来实现这一点,但是每分钟运行一次。我在 5 分钟间隔内使用此代码进行预定测试。我的 API 代码太长了。我在那里只使用测试目的示例代码。


register_activation_hook(__FILE__, 'my_activation');

add_action( 'wp', 'my_activation' );


function my_activation() {

    if (! wp_next_scheduled ( 'my_hourly_event' )) {

    wp_schedule_event(time(), 'hourly', 'my_hourly_event');

    }

}


add_action('my_hourly_event', 'do_this_hourly');


function do_this_hourly() {

    // do something every hour

    $t          = time();

    $user_login = 'test-'.$t;

    $user_email = 'test-'.$t.'@yahoo.com';

    $user_pass  = '123456';


    $userdata = compact( 'user_login', 'user_email', 'user_pass' );

    $user_id = wp_insert_user( $userdata ) ;


    // On success.

    if ( ! is_wp_error( $user_id ) ) {

        echo "User created : ". $user_id;

    }else{

        echo "<h1>User already exsist</h1>";


    }

}


register_deactivation_hook(__FILE__, 'my_deactivation');


function my_deactivation() {

    wp_clear_scheduled_hook('my_hourly_event');

}


慕仙森
浏览 162回答 2
2回答

慕沐林林

您可以使用 crontab 来执行此操作,例如每天 06:02。crontab -e&nbsp;然后加&nbsp;6 &nbsp; 2 &nbsp; * &nbsp; * &nbsp; * &nbsp; curl http://api

GCT1015

wp_schedule_event 函数中的用法如下所示:使用 strtotime() 函数,以便您可以指定一天中的时间 - 它将使用今天的日期和您指定的时间。wp_schedule_event( strtotime('16:20:00'), 'daily', 'my_daily_event' );编辑并且您必须在预定后设置下一个预定时间if (!wp_next_scheduled('my_daily_event')) {&nbsp; &nbsp; $time = strtotime('today'); //returns today midnight&nbsp; &nbsp; $time = $time + 72000; //add an offset for the time of day you want, keeping in mind this is in GMT.&nbsp; &nbsp; // Ex: $time = strtotime("+1 day");&nbsp; &nbsp; wp_schedule_event($time, 'daily', 'my_daily_event');}
打开App,查看更多内容
随时随地看视频慕课网APP