2016-10-29 1 views
1

Wir wissen, dass single.php in Wordpress ist innerhalb der Schleife, so dass ich direkt the_title() oder the_permalink() verwenden kann, ohne eine benutzerdefinierte Abfrage zu erstellen.Get Kategorie Link zu einer Posts Liste in single.php in Wordpress

Ich mache das schon, aber darüber hinaus habe ich eine Sidebar, die die neuesten Beiträge (benutzerdefinierte Post-Typ) mit ihren Titeln, Links und Kategorien anzeigt.

Ich bin in der Lage, alle ihre verwandten Informationen außer der Kategorie Link abrufen.

Der Code, den ich habe, gibt jetzt Kategorie uncategorized für alle Beiträge zurück, obwohl sie jeweils in einer bestimmten Kategorie sind.

Dies ist die individuelle Abfrage, die ich verwende, die Beiträge von einer benutzerdefinierten Post-Typ cards innerhalb single.php

Hinweis $categories = get_categories(); abruft - die foreach-Schleife zeigt die folgende URL für alle Beiträge, die einfach nicht wahr ist.

http://localhost/wonderhive/category/uncategorized/

Wie kann ich das beheben, dass und die richtige Kategorie URL abrufen? Da erhalte ich bereits den richtigen Kategorienamen.

<?php 
      $queryObject = new WP_Query('post_type=cards&posts_per_page=-1'); 
      if ($queryObject->have_posts()) { 

       while ($queryObject->have_posts()) { 
        $queryObject->the_post(); ?> 
       <div class="vista bg-black p-12 h-60 black"> 
        <a href="<?php the_permalink(); ?>"> 
         <img src="<?php the_post_thumbnail_url('small'); ?>" alt="gian" class="f-left foto r-100 "> 
         <div class="f-left"> 
          <h5 class="gray2"> 
           <?php 
           $thetitle = $post->post_title; 
           $getlength = strlen($thetitle); 
           $thelength = 45; 
           echo substr($thetitle, 0, $thelength); 
           if ($getlength > $thelength) echo "..."; 
           ?> 
          </h5> 
        </a> 
         <h6> 
          <?php 
          $categories = get_categories(); 
          foreach ($categories as $cat) { 
           $category_link = get_category_link($cat->cat_ID); 
           echo $category_link; 
          } 
          ?> 
          <a href=""> 
           <?php $terms = wp_get_post_terms($post->ID,'categories'); 
           foreach ($terms as $term) { 
            echo $term->name; 
           } 
           ?> 
          </a> 
         </h6> 
        </div> 
        <span class="f-right"><?php echo get_the_date(); ?></span> 
       </div> 
       <?php } 
      } 
      ?> 

Antwort

0

sollten Sie $categories = get_the_category() anstelle von $categories = get_categories(). Diese Funktion ruft stattdessen die Kategorien für den aktuellen Post ab.

Weitere Informationen finden Sie unter WordPress Codex on get_the_category(). Viel Glück!

Verwandte Themen