분류별로 사용자 정의 게시물 유형의 모든 게시물 나열


25

특정 맞춤 게시물 유형으로 모든 게시물을 나열하고 첨부 된 맞춤 분류 용어로 정렬 할 수있는 방법이 있습니까?

예를 들어;

분류 용어 # 1
게시물 유형
게시물 유형
게시물 유형

분류 용어 # 2
게시물 유형
게시물 유형

도움을 주시면 감사하겠습니다.

감사.

답변:


52

이 시도

$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;
     }
}

분류법의 모든 용어를 가져 와서 반복하고 해당 용어에 속하는 각 게시물에 대한 제목 링크를 시작합니다. 분류법 용어를 재정렬해야하는 경우 플러그인을 사용하여 쉽게 작성할 수 있습니다. 분류를 다시 주문 , 나는 믿는다. 그러나 주의를 기울이 플러그인을 추가하는 (!) 다른에 테이블에 열 활성화비활성화에 그것을 제거하지 않습니다 !


안녕하세요 @GhostToast이 방법은 훌륭합니다. 직접적인 질문이 있습니다. 분류법으로 필터링 할 수있는 방법, 테니스, 골프, 축구, 볼리 볼이 있습니다. 게시물과 함께 Soccer Taxonomy 만 표시합니다.
Rodrigo Zuluaga

@RodrigoZuluaga는 기본 단일 쿼리 일 것입니다. 빼앗아 $custom_terms하고 foreach()그냥 정의 'terms'원하는 슬러그이든 수동.
GhostToast

나는 조금 다르게 생각하지만 코드는 좋은 $ args = array ( 'post_type'=> 'publica', 'tax_query'=> array (array ( 'taxonomy'=> 'comision-publicaciones', 'field'= > 'name', 'terms'=> array ($ ter_name)),),);
Rodrigo Zuluaga

1

특히 우아한 솔루션은 아니지만 특정 용어에 대해 각각 여러 개의 쿼리를 생성 한 다음 출력 할 수 있습니다. 바라건대 누군가가 자동으로 용어를 가져 와서 출력 / 정렬을 수정하는 더 좋은 방법을 생각해 낼 수 있기를 바랍니다. 그러나 이것은 당신을 갈 것입니다.

<?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;
}

0

좋은 것! 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;
}

예! 코드를 더욱 향상시킬 수있는 옵션이 항상 있습니다.


-1

사용자 정의 분류에서 사용자 정의 게시물 목록을 표시하려면

$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;
}

표제

  • 아이템 목록
  • 아이템 목록
  • 아이템 목록
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.