2017-04-25 6 views
0

나는 그저 눈물이 빠진 눈물과 신선한 눈알 쌍이 내가 놓친 것을 잡을 수 있기를 바라고있다.Wordpress 분류학 기록 BUG

나는 residential_projects의 커스텀 포스트 타입에 할당 된 'residential_project_types'의 슬러그를 가진 커스텀 택 소노 미를 가지고있다. 택 소노 미에서 모든 용어를 표시하고 용어 이름과 링크를 출력하고 싶습니다. 작업의

그것의 종류 ...

는 대신에 각 하나의 용어를 표시하는,이 용어에 포함 된 모든 게시물에 대한 용어를 표시하는 것으로 나타납니다. 이것은 물론 중복을 생성합니다. 또한 HTML이 제대로 표시되지 않아 요소가 이상하게 오버랩됩니다.

내 직감이 루프에 엉망이되었습니다 ... ...? 그래도 그것을 알아낼 수 없었어요. 모든 도움을 주신 모든 분들께 감사드립니다! 내가 작성한 코드 여기 http://desarch.robertrhu.net/residential/

것 : 여기

깨진/버그 페이지로 연결되는 링크의 사용자 정의 분류에서 용어를 표시하려면

<?php 
    $terms = get_terms(array(
     'taxonomy' => 'residential_project_types', 
     'orderby' => 'count', 
     'hide_empty' => false, 
     'fields'  => 'all' 
    )); 
?> 

<?php 
    foreach($terms as $term) { 

    $args = array(
     'post_type' => 'residential_projects', 
     'residential_project_types' => $term->slug 
    ); 

    $term_link = get_term_link($term); 

    $query = new WP_Query($args); 

    if ($query->have_posts()) : 
     /* Start the Loop */ 
     while ($query->have_posts()) : $query->the_post(); ?> 
     <a class="property-thumb-link" 
      href="<?php echo $term_link; ?>"> 
      <div class="property-thumb column medium-6 small-12"> 

       <img src="<?php the_field('category_image', $term); ?>" 
        alt="<?php the_field ('category_image_alt', $term); ?>" /> 

       <div class="property-thumb-title"> 
        <h2> 
         <?php echo $term->name; ?> 
        </h2> 
       </div> 
      </div> 
     </a> 
    <?php wp_reset_postdata(); 
    endwhile; 
endif; }?> 

답변

0

, 난 당신이해야한다고 생각하지 않습니다 WP_Query()을 사용하십시오. 이는 게시물을 루핑하기위한 것입니다. 대신

아래 그림과 같이 당신이 그들을 통해 반복의 get_terms() 기능을 사용하여 용어 개체를 얻을 수 있습니다 :

<?php 
$terms = get_terms(array(
    'taxonomy' => 'residential_project_types', 
    'hide_empty' => false, 
)); 

// Temp output of terms so you can see what you're working with 
// var_dump($terms); 

// loop through all terms 
foreach($terms as $term) { 

    if(0 === $term->count) { 

     // This $term has no posts attached to it - you may want to treat it differently. 
     echo $term->name; 

    } elseif($term->count > 0) { 

     // Build your term markup for terms that have posts attached 
     $term_link = get_term_link($term); 
     ?> 
     <a class="property-thumb-link" href="<?php echo $term_link; ?>"> 
      <div class="property-thumb column medium-6 small-12"> 
       <img src="<?php the_field('category_image', $term->term_id); ?>" alt="<?php the_field ('category_image_alt', $term->term_id); ?>" /> 
       <div class="property-thumb-title"> 
        <h2><?php echo $term->name; ?></h2> 
       </div> 
      </div> 
     </a> 
     <?php 

    } 

} 

또한 빈 조건을 숨길 수 get_terms()'hide_empty' => true을 설정하여 - 당신이 다음 검사하는 조건을 드롭 수 빈 용어.

나는 ACF 사용자 정의 필드가 용어에 붙어 있다고 가정하고 있으므로 의 두 번째 인수로 $term->term_id을 전달해야합니다. 그러나이 필드로 무엇을하고 있는지 잘 모르겠습니다. 다행히도 이것은 당신이 진보하도록 도울 것입니다.

행운을 빈다.

+0

응답 해 주셔서 감사합니다! 주사위가 없다. 나는 비슷한 생각을 가지고 있었다. 리셋을 여러 위치로 옮겼으며 변경하지 않았습니다. – user5176291

+0

안녕하세요 - 저는 당신이하려고하는 것을 오해했다고 생각합니다. 나는 내 대답을 고쳐 줄거야! – DavidCara

0

나는 이것을 극도로 복잡하게 만들었습니다. 여기 내 대답은 ...

<?php $terms = get_terms(array(
    'taxonomy' => 'residential_project_types', 
    'orderby' => 'count', 
    'hide_empty' => true 
)); 

    foreach($terms as $term) : 
?> 

<a class="property-thumb-link" 
    href="<?php echo get_term_link($term); ?>"> 
    <div class="property-thumb column medium-6 small-12"> 

     <img src="<?php the_field('category_image', $term); ?>" 
      alt="<?php the_field ('category_image_alt', $term); ?>" /> 

     <div class="property-thumb-title"> 
      <h2> 
       <?php echo $term->name; ?> 
      </h2> 
     </div> 
    </div> 
</a> 
<?php endforeach; ?>