我有一个每小时运行一次的 wp_cron。
cron 调用一个迭代自定义帖子类型的函数。然后使用标题和一些元数据从远程服务器上抓取结果。
问题是由于帖子的数量,抓取需要很长时间。我想通过一次仅迭代 25 个帖子将抓取分成块。使用 query_posts 中的 offset 参数很容易,但我如何动态地 add_action() 并传递 offset 变量?
在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。