【发布时间】:2013-01-21 00:28:57
【问题描述】:
我有一个 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。
【问题讨论】: