在wordpress中创建自定义cron?

时间:2015-05-05 06:11:04

标签: cron crontab wordpress crontrigger

我有一个wordpress页面,我需要在cron中设置此页面。我该怎么做? 我的wordpress页面链接是:

http://example.com/wp-admin/admin.php?page=popshop-import&category=32194&cate_id=1279

当我在浏览器中运行此URL时,此页面正常工作。我怎样才能将它设置为wordpress cron?

1 个答案:

答案 0 :(得分:1)

我没有任何关于popshop api的经验,但使用wordpress crons非常简单。您只需要创建一个能够执行任何操作的函数,然后将其挂钩到wp_schedule_event函数中。

让我们假设POPSHOP API是一个简单的REST API。这就是你如何完成cron工作。

if ( ! wp_next_scheduled( 'popshop_api' ) ) {
  wp_schedule_event( time(), 'hourly', 'popshop_api' );
}

add_action( 'popshop_api', 'running_popshop_api' );

function my_task_function() {
  $service_url = 'http://example.com/wp-admin/admin.php?page=popshop-import&category=32194&cate_id=1279';
  $curl = curl_init($service_url);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  $curl_response = curl_exec($curl);
  if ($curl_response === false) {
      $info = curl_getinfo($curl);
      curl_close($curl);
      die('error occured during curl exec. Additioanl info: ' .   var_export($info));
  }
  curl_close($curl);
  $decoded = json_decode($curl_response);
  if (isset($decoded->response->status) && $decoded->response->status == 'ERROR') {
      die('error occured: ' . $decoded->response->errormessage);
  }
  echo 'response ok!';
  var_export($decoded->response);

}

所以代码使用curl来查找响应,如果响应不是false,它会将数据保存到$ curl_response变量,然后你就可以var_dump / var_export它并随心所欲地执行它。