我有一个从 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');}
2 回答
GCT1015
TA贡献1827条经验 获得超4个赞
wp_schedule_event 函数中的用法如下所示:
使用 strtotime() 函数,以便您可以指定一天中的时间 - 它将使用今天的日期和您指定的时间。
wp_schedule_event( strtotime('16:20:00'), 'daily', 'my_daily_event' );
编辑
并且您必须在预定后设置下一个预定时间
if (!wp_next_scheduled('my_daily_event')) {
$time = strtotime('today'); //returns today midnight
$time = $time + 72000; //add an offset for the time of day you want, keeping in mind this is in GMT.
// Ex: $time = strtotime("+1 day");
wp_schedule_event($time, 'daily', 'my_daily_event');
}
- 2 回答
- 0 关注
- 161 浏览
添加回答
举报
0/150
提交
取消