2013-01-02 171 views
1

好的,所以我創建了一個Wordpress模板,它只顯示具有與其關聯的「鍛鍊」類別的帖子。在顯示這些內容的循環中,我希望列出特定帖子的類別。在wordpress循環中顯示帖子的類別?

我在想這樣的事情會的工作:

$id = get_the_ID(); 
$cats = wp_get_post_categories($id); 

但是當時我不知道如何來呼應這一點上到屏幕上。 任何人都知道如何顯示循環內每篇文章的類別?我看過的所有文章都只顯示瞭如何顯示所有類別,不顯示與特定帖子關聯的類別。

這裏是循環我有:

<div class="query"> 
<b><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></b> 
    <?php 
     $id = get_the_ID(); 
     $cats = wp_get_post_categories($id); 
    ?> 
</div> 
<?php endwhile; ?> 

回答

6

只是呼應名稱:

echo $cats[0]->name; 

如果要輸出的鏈接,使用此:

<a href="<?php echo get_category_link($cats[0]->cat_ID); ?>"> 
    <?php echo $cats[0]->name; ?> 
</a> 

注意:而不是wp_get_post_categories($id),您可以使用get_the_category()


更新:,如果你想通過他們來顯示所有的類別,只是循環:

<?php foreach ($cats as $cat): ?> 

    <a href="<?php echo get_category_link($cat->cat_ID); ?>"> 
     <?php echo $cat->name; ?> 
    </a> 

<?php endforeach; ?> 
+0

就像我想要的一樣工作!謝謝 –

+0

@ThomasNolan - 當然。只需循環訪問'$ cats'數組。我也更新了我的答案。 –

2

感謝約瑟夫。我擴展了您的代碼,以便在有多個類別時,「類別」一詞更改爲「類別」。可能有這樣做的更好的方式,但我找不到任何地方它:)

<p> 
    <?php 
    $id = get_the_ID(); 
    $cats = get_the_category($id); 
    echo (count($cats) == 1 ? 'Category: ' : 'Categories: '); 
    $c = 0; $n = 0; 
    $c = count($cats); 
    foreach ($cats as $cat): 
     $n++; ?> 
     <a href="<?php echo get_category_link($cat->cat_ID); ?>"> 
      <?php echo $cat->name; echo ($n > 0 && $n < $c ? ', ' : ''); ?> 
     </a> 
    <?php endforeach; ?> 
</p> 
+0

謝謝,這正是我需要的! – tiaNaturally

1

得到這個職位,類別,如果你有一個自定義post_type

<?php 
$categories = get_the_terms($post->ID, 'taxonomy'); 
// now you can view your category in array: 
// using var_dump($categories); 
// or you can take all with foreach: 
foreach($categories as $category) { 
    echo $category->term_id . ', ' . $category->slug . ', ' . $category->name . '<br />'; 
} ?> 

click here for detail

0

如果有其他人需要此幫助,您可以使用此內部帖子循環:

<p><?php _e('Category: ', 'themename'); the_category(', '); // Separated by commas ?></p> 
相關問題