2013-04-28 5 views
1

제 문제는 한 줄에 모두 표시하는 것이 아니라 사용자 지정 분류를 개별적으로 나열하는 것입니다.Wordpress Custom Taxonomy - 개별적으로 나열하십시오.

위치 : : 예 위치

장소 : 예 장소

그러나

나는 부모 분류 체계 LocationVenue와 같은 해당 목록을 나열하고 싶은이 내가 사용하는 코드는 다음과 같이 표시합니다.

예를 들어, 위치, 예를 들어, 장소는

내가 사용하는 코드는 다음과 같습니다

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

uk_events 내가 사용하고있는 사용자 정의 포스트 유형, locationvenue은 해당 게시물 유형의 상위 분류입니다.

누구나 도와 드릴 수 있습니까? 이처럼 분류법을 표시하는 데 필요한 정보를 찾지 못해 매우 감사하게 생각합니다.

난 당신이 the_terms()에 사용자 정의 포스트 유형을 전달하는 의미가있어 확실하지 않다,

답변

0

첫째 주셔서 감사합니다.

어쨌든 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 이것은 내가 테스트 할 수있는 구문이나 논리 오류가있을 수 있으므로 아이 패드에 개 입력 ...하지만 아이디어가 도움이 정도로 소리를해야한다고 생각했다!


업데이트 : 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'); 

과를 예를 들어 이리저리 이 코드가 functions.php 인 함수에 대한 템플리트의 호출) 'uk_events'$post->post_type으로 바꿉니다.

+0

답장을 보내 주셔서 감사합니다. 그 코드는 원하는대로 두 줄에 택 소노 미를 넣습니다. 그러나 각 줄의 모든 분류를 표시합니다. 위치 : 예제 위치 –

+0

@MattHelden [get_the_terms()에 대한 Codex] (http://codex.wordpress.org/Function_Reference/get_the_terms) 결과는 두 번째 매개 변수에 의해 지정된 특정 택 소노 미로 필터링되어야합니다 (즉, 우리는'$ tax'를 전달합니다).). 우리는 대답을 업데이트 할 것입니다. – Sepster

+0

@MattHelden 당신은'$ post'와'$ post-> ID'가 당신이 생각하는 것을 포함하고 있는지 확인할 수 있습니까? 'get_the_terms()'가 _first_ 매개 변수가 잘못되어 예기치 않게 작동하는지 궁금합니다. 이 코드를 검사하기 직전에'echo "
ID : {$ post-> ID}
"; '을 수행 하시겠습니까? – Sepster

관련 문제