2016-07-21 27 views
0

私は次のコードを持っています。私はwhileループ内で何が起こるかのコンテキストが非常に重要であるとは思えません。問題は、ifステートメントのcontinue;にあります。 ifの条件が満たされたため、continue;に達しました。これは無限ループを作成しました。しかし、なぜこれが当てはまるのか理解できません。ワードプレスの無限ループWP_Queryループ

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

その時点でループを終了しようとしていますか、無限ループを作成することを熟考していますか? – RamRaider

+0

私は反復をスキップして次のオブジェクトに移動しようとしています –

+0

@Liam、私が与えた解決策をチェックしましたか?それは動作しますか? – Dekel

答えて

1

あなたはループカウンタが進んでいないだろう$latest_event->the_post()を呼び出すことはありません、そのため、あなたは無限ループを持つことになります。

continue;の前に$latest_event->the_post()と発声して、次の投稿に行くことを確認する必要があります(そうでない場合は、$latest_events->have_posts()は常にTRUEを返します)。

 if(isset($event_type) && strpos_arr($event_type, array('Training')) !== false){ 
      $latest_event->the_post(); 
      continue; 
     }