Liệt kê tất cả các bài viết trong loại bài tùy chỉnh theo phân loại


25

Có cách nào tôi có thể liệt kê tất cả các bài đăng trong một loại bài đăng tùy chỉnh cụ thể và sắp xếp chúng theo thuật ngữ phân loại tùy chỉnh gắn liền với chúng không?

Ví dụ;

Thuật ngữ Taxonmy # 1
Loại
bài viết Loại
bài đăng Loại

Thuật ngữ phân loại số 2
Loại
bài đăng Loại bài

Bất kỳ trợ giúp sẽ được đánh giá cao nhất.

Cảm ơn.

Câu trả lời:


51

Thử đi

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

Chúng tôi nhận được tất cả các điều khoản của phân loại, lặp qua chúng và loại bỏ một liên kết tiêu đề đến mỗi bài đăng thuộc về thuật ngữ đó. Nếu bạn cần sắp xếp lại các thuật ngữ phân loại, bạn có thể làm như vậy với một plugin khá dễ dàng. Sắp xếp lại phân loại , tôi tin. Nhưng hãy chú ý rằng plugin này thêm (!) Một cột khác vào bảng của bạn khi kích hoạtkhông xóa nó khi hủy kích hoạt !


Xin chào @GhostToast Điều này hoạt động rất tốt, tôi có một câu hỏi trực tiếp, làm thế nào tôi có thể lọc cái này bằng cách phân loại, tôi có tennis, golf, bóng đá, bóng chuyền, mã này mang đến cho họ tất cả các bài đăng của họ có kiểm tra phân loại, Làm thế nào tôi có thể lọc chỉ hiển thị Phân loại bóng đá với các bài đăng của nó.
Rodrigo Zuluaga

@RodrigoZuluaga đó sẽ là một truy vấn đơn cơ bản sau đó. lấy đi $custom_termsforeach()và chỉ cần xác định 'terms'bằng tay cho sên hoặc bất cứ điều gì bạn muốn.
GhostToast

Tôi nghĩ nó hơi khác một chút nhưng tôi nghĩ mã của bạn rất tốt $ args = mảng ('post_type' => 'publica', 'tax_query' => mảng (mảng ('taxonomy' => 'comision-publicaciones', 'field' = > 'name', 'terms' => mảng ($ ter_name)),),);
Rodrigo Zuluaga

1

Không phải là một giải pháp đặc biệt tao nhã nhưng bạn có thể tạo nhiều truy vấn cho mỗi thuật ngữ cụ thể và sau đó xuất chúng. Hy vọng rằng ai đó có thể đưa ra một cách tốt hơn để tự động kéo các điều khoản để sửa đổi đầu ra / sắp xếp. Nhưng điều này sẽ giúp bạn đi.

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

Đẹp quá Giải pháp của GhostOne là những gì tôi đã tìm kiếm. Trong tình huống của tôi, loại bài đăng tùy chỉnh là 'minining_accident' và các nguyên tắc phân loại tùy chỉnh liên quan đến điều này là 'loại tai nạn' có nhiều thuật ngữ theo nó. Ý tưởng của tôi là tạo ra một widget tùy chỉnh để hiển thị danh sách các bài đăng theo các điều khoản trong phân loại tùy chỉnh này. Trong thử nghiệm của tôi, nó đã đạt được những gì tôi muốn. Phần còn lại đã mọc lên. Đây là mã của tôi:

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

Vâng! Luôn luôn có một tùy chọn để tiếp tục cải thiện mã.


-1

Để hiển thị danh sách các bài đăng tùy chỉnh từ phân loại tùy chỉnh

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

Chức vụ

  • Danh sách mục
  • Danh sách mục
  • Danh sách mục
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.