2013-04-28 51 views
1

我的問題是,我想單獨列出我的自定義分類標準,而不是一行。WordPress的自定義分類 - 單獨列出

我父分類LocationVenue和想列出它們的方式:

位置:例如位置

地點:例如場地

但我正在使用的代碼顯示爲:

例如位置,例如場地

我正在使用的代碼是:

<?php the_terms($post->ID, 'uk_events' , ' '); ?> 

uk_events是,我使用的是自定義文章類型,locationvenue是該帖子類型中的父分類法。

任何人都可以幫忙,這將是非常感激,因爲我還沒有發現任何信息顯示這樣的分類標準。

謝謝

回答

0

首先,我不知道你指的自定義後類型傳遞給the_terms()。我覺得get_the_terms()會給你以後的靈活性。

如:

<?php 
    $taxList = array("location", "venue"); 
    foreach ($taxList as $tax) { 
     $terms = get_the_terms($post->ID, $tax);  
     if ($terms && ! is_wp_error($terms)) { 
      echo "<br/>{$tax}: "; 
      $separator = ""; 
      foreach ($terms as $term) { 
       echo "{$separator}{$term->name}"; 
       $separator ", "; 
      } 
     } 
    } 
?> 

NB這是打出來,在iPad上,所以可能包含語法或邏輯錯誤,因爲我不能測試...但認爲這個想法應該是足夠健全的幫助!


更新: OP建議的是,上述代碼被顯示在每一行,這表明從get_the_terms()結果不是通過在第二參數指定的分類學過濾所有分類術語。

我想知道這可能是因爲分類名稱是區分大小寫的,所以我是如何規定他們$taxList陣列中可能是不正確的,但根據docco,如果是這樣的話,那麼get_the_terms()應該返回false在這種情況下,什麼都不會輸出。

所以 - 看來,這是由我們來篩選結果如下:

<?php 
    $taxList = array("location", "venue"); 
    foreach ($taxList as $tax) { 
     $terms = get_the_terms($post->ID, $tax);  
     if ($terms && ! is_wp_error($terms)) { 
      echo "<br/>{$tax}: "; 
      $separator = ""; 
      foreach ($terms as $term) { 
       if (strtolower($term->taxonomy) == strtolower($tax)) {// <-- New (redundant!?) filter. 
        echo "{$separator}{$term->name}"; 
        $separator ", "; 
       } 
      } 
     } 
    } 
?> 

更新:的進一步改變可能是自動的回暖在當前使用的分類後,以避免輸入錯誤等,通過更新所述第一行這樣:

$taxList = get_object_taxonomies('uk_events'); 

然後進一步,這個代碼可以被用於所有的交類型(例如來回m將模板中的一個呼叫轉換爲functions.php中此代碼的函數),將'uk_events'替換爲$post->post_type

+0

感謝您的答覆,該代碼將分類放在兩行上,因爲我想要的,但它也顯示在每一行上的所有分類法,所以我得到:位置:示例位置,示例場地 – 2013-04-28 14:35:53

+0

@MattHelden這很奇怪,根據到[get_the_terms()']的代碼(http://codex.wordpress.org/Function_Reference/get_the_terms),結果應該被第二個參數指定的特定分類法過濾掉(即,我們正在傳遞'$ tax' )。我們可以自己過濾,雖然...會更新答案。 – Sepster 2013-04-29 10:53:27

+0

@MattHelden你能否確認'$ post',因此'$ post-> ID'包含你認爲它的作用?我想知道'get_the_terms()'是否意外地行爲,因爲它的_first_參數是不正確的?做一個'回聲「
ID:{$ post-> ID}
」;'此代碼之前立即檢查? – Sepster 2013-04-30 02:51:04

相關問題