我有以下代码,我不确定在while循环中发生的事情的上下文非常重要。问题在于if语句中的continue;
。 if中的条件已满足,因此达到了continue;
。这创造了一个无限循环。我不明白为什么会这样呢?
有人可以建议为什么WordPress无法在WP_Query循环中处理continue;
吗?
while ($latest_events->have_posts()) {
$id = get_the_ID();
$custom_fields = base_get_all_custom_fields($id);
$event_type = $custom_fields["course/event_type"][0];
if(isset($event_type) && strpos_arr($event_type, array('Training')) !== false ){
continue;
}
$latest_events->the_post();
get_template_part('partials/latest-espresso-events');
}
答案 0 :(得分:1)
如果你不打电话给$latest_event->the_post()
,循环计数器就不会前进,因此你将有一个无限循环。
您必须在$latest_event->the_post()
语句前致电continue;
以确保转至下一篇文章(否则$latest_events->have_posts()
将始终返回TRUE
)。
if(isset($event_type) && strpos_arr($event_type, array('Training')) !== false ){
$latest_event->the_post();
continue;
}