2011-07-29 53 views
2

使用wp_get_post_terms()時,我可以生成與帖子關聯的分類術語列表。但是,我只想顯示爲該帖子選擇的分類術語。使用上述函數和get_terms()將成功找到分類術語,但它會顯示所有術語。不僅僅是那些被選中的人。在$ args數組中,我查找了一個'selected'篩選器,但是我沒有找到,當我嘗試它時,它不起作用。只顯示文章選擇的分類術語?

我想做一些不能做的事嗎?我敢肯定,這是我面對的主角。在我做事情的方式發生重大變化之前,我只想問親們。

回答

1

wp_get_post_terms只返回已爲該帖子選擇的項目,但不會返回所有分類術語。

http://codex.wordpress.org/Function_Reference/wp_get_post_terms

+0

我必須誤入歧途然後某處。讓我問你,如果我聽起來很荒謬,我很抱歉。從我的特定帖子和分類中得到wp_get_post_terms()的數組後,當我做$ thevariableholdingthearray-> name;沒有什麼會迴應。我也試過$ thevariableholdingthearray ['name']和$ thevariableholdingthearray [1]。我很沮喪:-( – Schwoebel

+0

嘗試'foreach($ array作爲$ term){echo $ term-> slug;}' – Dogbert

+0

子故障。你知道嗎,我用the_ID()返回帖子的ID我想要的,我應該一直使用get_the_ID();感謝你的時間Dogbert。 – Schwoebel

0
<?php 
$the_selected = $_GET['cat']; 
$args = array('post_type' => 'portfolio_item', 'posts_per_page' => 11, 'orderby' => 'id', 'order' => 'DESC', 'themes_categories' => "$the_selected"); 
$loop = new WP_Query($args); 
while ($loop->have_posts()) : $loop->the_post(); 
?> 

這很適合我。我只是簡單地將分類標準發送給瀏覽器,然後用上面的代碼遍歷它們。

我送這個:

<li>Filter By:</li> 
<?php 
$categories=get_categories($args); 
    foreach($categories as $category) { 
    echo '<li><a href="' . get_category_link($category->term_id) . '?cat=' . $category->slug.'" title="' . sprintf(__("View all posts in %s"), $category->name) . '" ' . '>' . $category->name.'</a> </li> '; 
} 
?> 
0

你可以嘗試這個代碼,它爲我工作。我有一個名爲'stores'的分類標準,我想從中顯示2個選定的分類標準。所以我使用了包含功能。

<?php 
$taxonomy = 'stores'; 
$args1=array(
    'include'=> array(12,30) 
    ); 

$terms = get_terms('stores',$args1); 
echo '<ul>'; 


foreach ($terms as $term) { 
    //Always check if it's an error before continuing. get_term_link() can be finicky sometimes 
    $term_link = get_term_link($term, 'stores'); 
    if(is_wp_error($term_link)) 
     continue; 
    //We successfully got a link. Print it out. 


    echo '<li><a href="' . $term_link . '">' . $term->name . '</a></li>'; 
} 
echo '</ul>'; 
?> 
0
<?php echo get_the_term_list($post->ID, 'your_taxonamy'); ?> 

如果你想它沒有術語鏈接時,你可以使用這個

<?php $terms_as_text = get_the_term_list($post->ID,'your_taxonamy'); if (!empty($terms_as_text)) echo '', strip_tags($terms_as_text) ,''; ?> 
相關問題