2014-12-21 3 views
5

übergeben Hallo meine Kollegen Entwickler. Ich versuche, eine sekundäre Wordpress-Abfrage zu ändern und eine Liste der Beiträge entsprechend der Kategorie der übergeordneten Beiträge anzeigen zu lassen. Momentan gibt es den HTML-Code aus, um den Post zu stylen, allerdings nicht nach der Kategorie. Was fehlt mir hier? Danke im Voraus.Versuch, Variable an Wordpress-Funktion

<?php 
      $the_category = get_the_category($post->ID); 
      global $post; 
      $myposts = get_posts('numberposts=5&category='.$the_category.''); 
      foreach($myposts as $post) : setup_postdata($post); ?> 
     <li> 
      <div class="suggestVid"> 
       <span style="padding-right:5px; float:left;"> 
       <?php the_post_thumbnail('suggest-vid'); ?></span> 
       <a href="<?php the_permalink() ?>"><?php the_title(); ?></a> 
      </div> 
     </li> 
     <?php wp_reset_postdata(); ?> 
     <?php endforeach; ?> 
     <?php wp_reset_query(); ?> 

Antwort

3

Sie rufen get_the_category($post->ID); und denken, es gibt nur eine Kategorie zurück, wenn es tatsächlich returns an array of category objects. Unter der Annahme, dass jeder Beitrag nur eine Kategorie hat, können Sie einfach das erste Ergebnis nehmen, das zurückgegeben wurde.

Sie mischten auch die Reihenfolge wp_reset_postdata(); und endforeach;. Am Ende setzen Sie die Post-Daten innerhalb Ihrer Schleife zurück, so dass sie durch jede Schleifen-Iteration immer wieder auf die aktuelle Seite zurückgesetzt wird. Sie möchten es nur zurücksetzen, sobald die Schleife beendet ist.

Auch, wenn Sie innerhalb The Loop sind, wie sagen, auf einer Vorlage Seite, müssen Sie nicht global $post; direkt angeben.

Try this:

$categories = get_the_category(); 
$category = $categories[0]; 

$myposts = get_posts(array(
    'posts_per_page' => 5, 
    'category'  => $category->cat_ID 
)); 

?><ul><?php 

foreach($myposts as $post) : setup_postdata($post); ?> 
    <li> 
     <div class="suggestVid"> 
      <span style="padding-right:5px; float:left;"> 
      <?php the_post_thumbnail('suggest-vid'); ?></span> 
      <a href="<?php the_permalink() ?>"><?php the_title(); ?></a> 
     </div> 
    </li><?php 

endforeach; 
wp_reset_postdata(); 

>

+1

Das scheint es zu sein! Vielen Dank Herr Roman! – Ken

2

das Ersetzen:

$myposts = get_posts('numberposts=5&category='.$the_category.''); 

mit

$myposts = get_posts('numberposts=5&category='.$the_category); 

nicht $post als Schlüsselwort bei der Programmierung verwenden Sie da $post ein reserviertes Schlüsselwort für Wordpress ist.

+0

Dies auch leider kein Ergebnis anders als Mike Purcell produzieren hat?. Danke für Ihre Hilfe. – Ken