2016-08-15 3 views
0

Ich habe nach Informationen gesucht, die mein Problem erklären, aber keine gefunden. Ich habe eine Schleife, die angeblich alle Kinderkategorien von "Personal" auflisten sollte. Aus irgendeinem Grund startet die Schleife unendlich neu. Ich habe überprüft und es geht sowohl aus der foreach und while-Schleife, aber schafft es immer noch zu schleifen. Irgendwelche Ideen?Warum verursacht query_posts hier eine Endlosschleife?

Ich rufe die Funktion hier:

// Personnel listing 
upp_loop('Personal', 'personnel-preview', '<section class="res-table">', '</section>'); 

Und dies ist der Code, um die Beiträge zu erzeugen:

// Loop through children (To make headers) 
       $cats = get_categories('child_of=' . $catID . '&orderby=count&order=DESC'); 

       foreach ($cats as $cat) : 

       $args = array(
        'cat' => $cat->term_id 
       ); 
       $query = new WP_query($args); 

        if ($query->have_posts()) : 
         // Echo the Category name 
         ?> <h2><?php echo $cat->name; ?></h2> <?php 

         // List all children 
         while($query->have_posts()) : 
          $query->the_post(); 
           if (has_post_thumbnail()) { 
            $img = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'single-post-thumbnail'); 
           } 
           else { 
            $img[0] = get_template_directory_uri() . "/img/program-default.png"; 
           }?> 
            <a href="<?php the_permalink(); ?>" class="res-td"> 
             <img src="<?php echo $img[0] ?>" alt="<?php the_title(); ?>"/> 
             <h2><?php the_title() ?></h2> 
            </a> 
           <?php 
         endwhile; 
        endif; 
       endforeach; 
+0

Betrachten Sie bitte die Dokumentation, wie man [Abfrage Beiträge] (http://stackoverflow.com/documentation/wordpress/ 4002/querying-posts # t = 201608150832028118879). Verwenden Sie niemals "query_posts" für diese ... –

+0

@dingo_d Ich habe ein neues WP_query-Objekt erstellt und jetzt bleibt es nicht auf unendlich stecken. Allerdings macht es die foreach 4 mal. Irgendeine Idee warum? –

+0

Nun, wenn Sie 4 Kategorien haben, dann wird es nur 4 Mal "foreach". –

Antwort

0

Sie benötigen eine Abfrage als Variable zu definieren und dann mit ihm rufen Methoden.

Machen Sie diese Änderungen im Code: query_posts($args) zu $query = query_posts($args) have_posts()-$query->have_posts() the_post()-$query->the_post()

+0

Fehler erhalten: Schwerwiegender Fehler: Aufruf einer Memberfunktion have_posts() –

Verwandte Themen