2016-07-21 19 views
0

Ich habe den folgenden Code, ich bin mir nicht sicher, Kontext, was innerhalb der While-Schleife passiert, ist sehr wichtig. Das Problem liegt bei der continue; in der if-Anweisung. Die Bedingung in der if ist erfüllt, und so ist continue; erreicht. Dies erzeugte jedoch eine Endlosschleife. Ich kann nicht verstehen, warum das so ist?Unendliche Schleife in WordPress WP_Query Schleife

Könnte jemand vorschlagen, warum WordPress nicht mit continue; in einer WP_Query-Schleife umgehen kann?

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

versuchen Sie, die Schleife an diesem Punkt zu beenden, oder ist es absichtlich, dass Sie die Endlosschleife erstellen? – RamRaider

+0

Ich versuche, die Iteration zu überspringen und zum nächsten Objekt zu gehen –

+0

@Liam, hast du die Lösung überprüft, die ich gegeben habe? Funktioniert es? – Dekel

Antwort

1

Wenn Sie nicht $latest_event->the_post() rufen der Schleifenzähler wird nicht so weit fortgeschritten, laden Sie daher eine unendliche Schleife haben.

Sie müssen $latest_event->the_post() vor der continue; Anweisung aufrufen, um zum nächsten Beitrag gehen zu stellen Sie sicher, (sonst die $latest_events->have_posts() immer TRUE zurück).

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