毎時間実行する wp_cron があります。
cron は、カスタム投稿タイプを反復処理する関数を呼び出します。次に、タイトルと一部のメタ データを使用して、リモート サーバーから結果をスクレイピングします。
問題は、投稿数が多いためにスクレイピングに時間がかかることです。一度に 25 件の投稿を繰り返すだけで、スクレイピングをチャンクに分割したいと考えています。これは、query_posts でオフセット パラメータを使用すると簡単ですが、動的に add_action() してオフセット変数を渡すにはどうすればよいでしょうか?
functions.php内
if ( ! wp_next_scheduled( 'my_task_hook' ) ) {
wp_schedule_event( time(), 'hourly', 'my_task_hook' );
}
add_action( 'my_task_hook', 'rock_n_roll' );
私のscraper.phpは次のようになります
function rock_n_roll($offset) {
query_posts(array(
'post_type' => 'wine',
'order' => 'ASC',
'posts_per_page' => -1,
'offset' => $offset
));
while (have_posts()) : the_post();
//compare values against scraped results
//write results to DB with update_post_meta
endwhile;
}
基本的に、add_action() を動的に実行して、毎回 $offset の値を 25 ずつ増やす方法が必要です。