แสดงรายการโพสต์ทั้งหมดในประเภทโพสต์ที่กำหนดเองตามอนุกรมวิธาน


25

มีวิธีที่ฉันสามารถโพสต์โพสต์ทั้งหมดในประเภทโพสต์ที่กำหนดเองที่เฉพาะเจาะจงและจัดเรียงตามคำอนุกรมวิธานที่กำหนดเองที่แนบมากับพวกเขา?

ตัวอย่างเช่น;

Taxonmy ศัพท์ # 1
โพสต์ประเภท
โพสต์ประเภท
โพสต์

Taxonomy Term # 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;
     }
}

เราได้รับเงื่อนไขทั้งหมดของ taxonomy วนรอบพวกมันและปิดลิงค์ชื่อไปยังแต่ละการโพสต์ที่เป็นของคำนั้น หากคุณต้องการเรียงลำดับเงื่อนไขการจัดเรียงใหม่คุณสามารถทำได้โดยใช้ปลั๊กอินสวยง่าย ฉันเชื่อว่ามีการเรียงลำดับอนุกรมวิธานใหม่ แต่ให้ความสนใจว่าปลั๊กอินนี้จะเพิ่ม (!) คอลัมน์อื่นในตารางของคุณเมื่อเปิดใช้งานและจะไม่ลบออกเมื่อปิดใช้งาน !


สวัสดี @GhostToast วิธีนี้ใช้งานได้ดีฉันมีคำถามโดยตรงฉันจะกรองสิ่งนี้ด้วยอนุกรมวิธานฉันมีเทนนิสกอล์ฟฟุตบอลฟุตบอลวอลเล่ย์บอลรหัสนี้จะนำพวกเขาทั้งหมดไปกับโพสต์ที่มีการตรวจสอบอนุกรมวิธานฉันจะกรองได้อย่างไร แสดง Taxonomy ฟุตบอลเฉพาะโพสต์ของมัน
Rodrigo Zuluaga

@RodrigoZuluaga นั้นน่าจะเป็นข้อความค้นหาพื้นฐานเดียวแล้ว นำออกไป$custom_termsและforeach()เพียงกำหนด'terms'ด้วยตนเองเพื่อกระสุนหรือสิ่งที่คุณต้องการ
GhostToast

ฉันคิดว่ามันแตกต่างกันเล็กน้อย แต่โค้ดของคุณก็ดี $ args = array ('post_type' => 'publica', 'tax_query' => อาร์เรย์ (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' และ taxonomies ที่กำหนดเองที่เกี่ยวข้องกับสิ่งนี้คือ 'ประเภทอุบัติเหตุ' ซึ่งมีหลายเงื่อนไขภายใต้ ความคิดของฉันคือการสร้างวิดเจ็ตที่กำหนดเองเพื่อแสดงรายการโพสต์ภายใต้เงื่อนไขใน taxonomies ที่กำหนดเองนี้ ในการทดลองใช้ของฉันมันมีสิ่งที่ฉันต้องการ ส่วนที่เหลือก็เรียบร้อยขึ้น นี่คือรหัสของฉัน:

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

เพื่อแสดงรายการโพสต์ที่กำหนดเองจาก taxonomy ที่กำหนดเอง

$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.