Daftar semua posting dalam jenis posting khusus berdasarkan taksonomi


25

Apakah ada cara saya bisa mendaftar semua posting dalam jenis posting kustom tertentu dan mengaturnya dengan istilah taksonomi kustom yang terlampir padanya?

Sebagai contoh;

Taxonmy Term # 1
Jenis
Posting Jenis
Posting Jenis Posting

Taksonomi Jangka # 2
Jenis
Posting Jenis Posting

Bantuan apa pun akan sangat dihargai.

Terima kasih.

Jawaban:


52

Coba ini

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

Kami mendapatkan semua ketentuan taksonomi, memutarnya, dan meluncurkan tautan judul ke setiap pos yang termasuk dalam istilah itu. Jika Anda perlu menyusun ulang persyaratan taksonomi, Anda dapat melakukannya dengan mudah. Susun ulang taksonomi , saya percaya. Tetapi perhatikan bahwa plugin ini menambahkan (!) Kolom lain ke meja Anda saat aktivasi dan tidak menghapusnya saat dinonaktifkan !


Hai @ GhostToast Ini berfungsi dengan baik, saya punya pertanyaan langsung, bagaimana saya bisa memfilter ini dengan taksonomi, saya punya tenis, golf, sepak bola, bola sepak, kode ini membawa mereka semua dengan pos mereka yang sudah diperiksa taksonomi, Bagaimana saya bisa memfilter ke hanya menampilkan Taksonomi Sepak Bola dengan posnya.
Rodrigo Zuluaga

@Rodrigoifaxaga yang akan menjadi permintaan tunggal dasar itu. mengambil $custom_termsdan foreach()dan hanya mendefinisikan 'terms'secara manual untuk siput atau apa pun yang Anda inginkan.
GhostToast

Saya mengerti sedikit berbeda tapi saya pikir kode Anda bagus $ args = array ('post_type' => 'publica', 'tax_query' => array (array ('taksonomi' => 'komisioner-publikaciones', 'bidang' = > 'name', 'terms' => array ($ ter_name)),),);
Rodrigo Zuluaga

1

Bukan solusi yang sangat elegan tetapi Anda dapat membuat beberapa kueri masing-masing untuk persyaratan tertentu dan kemudian mengeluarkannya. Semoga seseorang dapat menemukan cara yang lebih baik untuk secara otomatis menarik istilah untuk memodifikasi output / penyortiran. Tapi ini akan membuat Anda pergi.

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

Yang bagus! Solusi GhostOne adalah apa yang saya cari. Dalam situasi saya, jenis pos kustom adalah 'minining_accidents' dan taksonomi khusus yang terkait dengan ini adalah 'tipe kecelakaan' yang memiliki beberapa istilah di bawahnya. Gagasan saya adalah membuat widget khusus untuk menampilkan daftar posting berdasarkan ketentuan dalam taksonomi khusus ini. Dalam uji coba saya itu mendapatkan apa yang saya inginkan. Istirahat dirapikan. Ini kode saya:

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

Iya nih! Selalu ada opsi untuk lebih meningkatkan kode.


-1

Untuk menampilkan daftar kiriman khusus dari taksonomi khusus

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

Judul

  • Daftar barang
  • Daftar barang
  • Daftar barang
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.