2014-05-21 18 views
0

我一直在試圖在wordpress上創建一個頁面,顯示所有類別的圖像,標題和特定post_type的所有類別的鏈接。不能顯示post_type下的所有類別的列表

我加入以下代碼到我的functions.php文件:

function show_categories($excl=''){ 
    $categories = get_the_category($post->ID); 
    if(!empty($categories)){ 
     $exclude=$excl; 
     $exclude = explode(","); 
     foreach ($categories as $cat) { 
      if(!in_array($cat->cat_ID)) { 
      echo '<div class="product-category">'; 
      // echo '<p>' . $cat->category_description . '</p>'; 
      echo '<a href="' . get_category_link($cat->term_id) . '" />'; 
      echo '<img src="'; 
      echo z_taxonomy_image_url($cat->term_id, 'products') . '" />'; 
      echo '</a>'; 
      echo '<h2><a href="' . get_category_link($cat->term_id) . '" class="cat-link"'; 
      echo '/>' . $cat->cat_name . '</a></h2>'; 
      echo '<a href="' . get_category_link($cat->term_id) . '" class="more-info" >Info</a>'; 
      echo '</div>'; 
      } 
      } 

     } 
} 

現在的問題是:只顯示最新帖子的類別。如果最新帖子包含在所有類別中,則所有類別都將顯示,如果不是,則只顯示與最新帖子相關的類別。

我呼籲文件歸檔products.php這樣這個功能:

<?php show_categories(); ?> 

任何想法?

這是網頁:http://giannacamilotti.com/products/

回答

0

我找到了解決方法,下面的代碼工作!

function show_categories($excl=''){ 
$args=array(
'post_type' => 'Products' 
); 
    $categories = get_categories($args); 
    if(!empty($categories)){ 
     $exclude=$excl; 
     $exclude = explode(","); 
     foreach ($categories as $cat) { 
      echo '<div class="product-category ' . $cat->cat_name . ' ">'; 
      echo '<a href="' . get_category_link($cat->term_id) . '" />'; 
      echo '<img src="'; 
      echo z_taxonomy_image_url($cat->term_id, 'products') . '" />'; 
      echo '</a>'; 
      echo '<h2><a href="' . get_category_link($cat->term_id) . '" class="cat-link"'; 
      echo '/>' . $cat->cat_name . '</a></h2>'; 
      echo '<a href="' . get_category_link($cat->term_id) . '" class="more-info" >Info</a>'; 
      echo '</div>'; 
      } 

     } 
} 

如果有人有更好更清潔的解決方案,請讓我知道。

相關問題