2017-04-12 10 views
0

"Education"이라는 맞춤 게시 유형을 만들었습니다. 이 사용자 지정 게시물 유형을 사용하여 "Years"라는 이름으로 사용자 지정 분류를 만들었습니다. 나는이 형식이 사용자 정의 포스트 유형에 대한 대략 약 10 게시물을 추가했다 말 :Wordpress : 사용자 정의 분류 유형별 알파벳순 맞춤 표시 유형?

title of custom post type (Education), Custom Taxonomy Name (Year)

어떻게 내 페이지에 게시물의 제목을 표시하고 순차적으로 분류 이름의 것?

Vimy College  2014 
Albatross   2013 
Some College  2011 
Another College 2010 
... 
... 

(그래서 같은)

여기에 지금까지 내 페이지에 대한 코드입니다 :

<?php /* Template Name: Education Page */ 
get_header(); ?> 

<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 

<div> 
<?php 
    // The args here might be constructed wrong 
    $args = array('post_type' => 'education', 
        'terms' => 'years', 
        'orderby' => 'terms', 
        'order' => 'ASC'); 

    $loop = new WP_Query($args); 
    while ($loop->have_posts()) : $loop->the_post(); 

     echo '<h3>'; 
     the_title(); 
     echo '</h3>'; 

     // I don't know what else to put here to display the associated taxonomy name 
     // (and in sequential order) 

    endwhile; 
?> 

</div> 

<?php endwhile; endif; ?> 

그래서 명확히하기 위해, 첫 번째 have_posts() 루프 그냥 실제 페이지 및 내부 루프를 메아리 게시물 제목을 나열하기 위해 위에서 언급했지만 사용자 정의 분류 이름 (이 경우 숫자)으로 정렬 된 형식을 생성해야합니다.

답변

1

이 트릭을 할해야

<?php 
$terms = get_terms('year', array('order' => 'DESC')); 
foreach($terms as $term) { 
    $posts = get_posts(array(
     'post_type' => 'education', 
     'tax_query' => array(
      array(
       'taxonomy' => 'year', 
       'field' => 'slug', 
       'terms' => $term->slug 
      ) 
     ), 
     'numberposts' => -1 
    )); 
    foreach($posts as $post) { 
     the_title(); 
     echo '<br>'; 
     $term_list = wp_get_post_terms($post->ID, 'year', array("fields" => "names")); 
     foreach ($term_list as $t) { 
      echo $t; 
     } 
     echo '<br><br>'; 
    } 
} 
?> 
+0

, 간단한, 좋은 컴팩트! 고마워,이 작품! – NoReceipt4Panda

1

귀하의 게시물 목록과 함께 귀하의 분류를 보여주고 싶다면 아래의 코드를 확인하십시오.

<?php 
$terms = get_terms('years'); 
foreach ($terms as $term) { 
$wpq = array ('taxonomy'=>'years','term'=>$term->slug); 
$myquery = new WP_Query ($wpq); 
$article_count = $myquery->post_count; 
?> 
<?php echo $term->name.':'; 
if ($article_count) { 
while ($myquery->have_posts()) : $myquery->the_post(); 
$feat_image = wp_get_attachment_url(get_post_thumbnail_id($post->ID)); 
?> 
<a href="<?php the_permalink(); ?>"> 
<img alt="<?php echo get_the_title(); ?>" src="<?php echo $feat_image;?>"/> 
</a> 
<a href="<?php the_permalink(); ?>"><b><?php echo get_the_title(); ?></b></a> 
<?php endwhile; 
wp_reset_postdata();     
} ?> 

<?php } ?>