답변:
이 시도
$custom_terms = get_terms('custom_taxonomy');
foreach($custom_terms as $custom_term) {
wp_reset_query();
$args = array('post_type' => 'custom_post_type',
'tax_query' => array(
array(
'taxonomy' => 'custom_taxonomy',
'field' => 'slug',
'terms' => $custom_term->slug,
),
),
);
$loop = new WP_Query($args);
if($loop->have_posts()) {
echo '<h2>'.$custom_term->name.'</h2>';
while($loop->have_posts()) : $loop->the_post();
echo '<a href="'.get_permalink().'">'.get_the_title().'</a><br>';
endwhile;
}
}
분류법의 모든 용어를 가져 와서 반복하고 해당 용어에 속하는 각 게시물에 대한 제목 링크를 시작합니다. 분류법 용어를 재정렬해야하는 경우 플러그인을 사용하여 쉽게 작성할 수 있습니다. 분류를 다시 주문 , 나는 믿는다. 그러나 주의를 기울이 플러그인을 추가하는 (!) 다른에 테이블에 열 활성화 및 비활성화에 그것을 제거하지 않습니다 !
$custom_terms
하고 foreach()
그냥 정의 'terms'
원하는 슬러그이든 수동.
특히 우아한 솔루션은 아니지만 특정 용어에 대해 각각 여러 개의 쿼리를 생성 한 다음 출력 할 수 있습니다. 바라건대 누군가가 자동으로 용어를 가져 와서 출력 / 정렬을 수정하는 더 좋은 방법을 생각해 낼 수 있기를 바랍니다. 그러나 이것은 당신을 갈 것입니다.
<?php
//First Query for Posts matching term1
$args = array(
'tax_query' => array(
array(
'taxonomy' => 'taxonomy_1',
'field' => 'slug',
'terms' => array( 'term1' )
),
),
'post_type' => 'my-post-type'
);
$query = new WP_Query( $args );
if ( have_posts() ) {
$term = $query->queried_object;
echo 'All posts found in ' . $term->name;
while ( have_posts() ) : the_post();
//Output what you want
the_title();
the_content();
endwhile;
}
//RESET YOUR QUERY VARS
wp_reset_query();
//Second Query for term2
$args = array(
'tax_query' => array(
array(
'taxonomy' => 'taxonomy_1',
'field' => 'slug',
'terms' => array( 'term2' )
),
),
'post_type' => 'my-post-type'
);
$query = new WP_Query( $args );
if ( have_posts() ) {
$term = $query->queried_object;
echo 'All posts found in ' . $term->name;
while ( have_posts() ) : the_post();
//Output what you want
the_title();
the_content();
endwhile;
}
좋은 것! GhostOne의 솔루션은 내가 찾던 것이 었습니다. 내 상황에서 사용자 지정 게시물 유형은 'minining_accidents'이고 이와 관련된 사용자 지정 분류 체계는 여러 가지 용어가있는 '사고 유형'입니다. 내 생각은이 사용자 정의 분류법의 용어로 게시물 목록을 표시하는 사용자 정의 위젯을 만드는 것입니다. 내 시운전에서 내가 원하는 것을 얻었습니다. 나머지는 가문비 나무였다. 내 코드는 다음과 같습니다.
function fn_get_list_of_mining_accident_types()
{
$custom_taxonomy='accident-types';
$custom_terms = get_terms($custom_taxonomy);
$str_return='<ul>';
foreach($custom_terms as $custom_term)
{
wp_reset_query();
$args = array(
'post_type' => 'minining_accidents',
'tax_query' => array(
array(
'taxonomy' => $custom_taxonomy,
'field' => 'slug',
'terms' => $custom_term->slug,
),
),
);
$loop = new WP_Query($args);
$term_name=$custom_term->name;
$term_slug=$custom_term->slug;
$term_link=get_term_link($term_slug, $custom_taxonomy);
$str_return.='<li><a href="'.$term_link.'">'.$term_name.'</a>';
if($loop->have_posts())
{
$str_return.='<ol>';
while($loop->have_posts()) : $loop->the_post();
$str_return.='<li><a href="'.get_permalink().'">'.get_the_title().'</a></li> ';
endwhile;
$str_return.='</ol>';
}
$str_return.='</li>';
}
$str_return.='</ul>';
return $str_return;
}
예! 코드를 더욱 향상시킬 수있는 옵션이 항상 있습니다.
사용자 정의 분류에서 사용자 정의 게시물 목록을 표시하려면
$args = array(
'tax_query' => array(
array(
'taxonomy' => 'your-custom-taxonomy',
'field' => 'slug',
'terms' => array( 'your-term' )
),
),
'post_type' => 'your-post-type'
);
$loop = new WP_Query($args);
if($loop->have_posts()) {
$term = $wp_query->queried_object;
while($loop->have_posts()) : $loop->the_post();
//Output what you want
echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
endwhile;
}
표제