Dapatkan Posting Di Bawah Taksonomi Kustom

31

Saya tidak mendapatkan pos di bawah taksonomi khusus ( fabric_building_types). Saya mendapatkan cat_iddan cat->namejuga tetapi tidak bisa mendapatkan posting.

$args = array(
    'type'                     => 'post',
    'child_of'                 => 0,
    'parent'                   => '',
    'orderby'                  => 'name',
    'order'                    => 'ASC',
    'hide_empty'               => 1,
    'hierarchical'             => 1,
    'exclude'                  => '',
    'include'                  => '',
    'number'                   => '',
    'taxonomy'                 => 'fabric_building_types',
    'pad_counts'               => false 
); 

$categories = get_categories( $args );

foreach ( $categories as $cat ) {

    // here's my code for getting the posts for custom post type

    $posts_array = get_posts(
        array(
            'showposts' => -1,
            'post_type' => 'fabric_building',
            'tax_query' => array(
                array(
                    'taxonomy' => 'fabric_building_types',
                    'field' => $cat->cat_ID,
                    'terms' => $cat->name,
                )
            )
        )
    );
    print_r( $posts_array ); 
}

Adakah yang bisa membantu saya ... Terima kasih sebelumnya

Parth Kumar
sumber
1
nilai yang valid untuk fielddi query pajak term_id, nameatau slug.
Milo

Jawaban:

57

Permintaan pajak Anda tidak benar, fieldharus menjadi bidang yang ingin query pada: term_id, name, atau slug-

$posts_array = get_posts(
    array(
        'posts_per_page' => -1,
        'post_type' => 'fabric_building',
        'tax_query' => array(
            array(
                'taxonomy' => 'fabric_building_types',
                'field' => 'term_id',
                'terms' => $cat->term_id,
            )
        )
    )
);
Milo
sumber
bagaimana cara memberi nomor pada posting ini setelah mendapatkannya?
Andreas Hunter
3

Anda harus menggunakan get_terms()taksonomi saat Anda bisa.

<?php 
/* Add your taxonomy. */
$taxonomies = array( 
    'fabric_building_types',
);

$args = array(
    'orderby'           => 'name', 
    'order'             => 'ASC',
    'hide_empty'        => true, 
    'exclude'           => array(), 
    'exclude_tree'      => array(), 
    'include'           => array(),
    'number'            => '', 
    'fields'            => 'all', 
    'slug'              => '', 
    'parent'            => '',
    'hierarchical'      => true, 
    'child_of'          => 0, 
    'get'               => '', 
    'name__like'        => '',
    'description__like' => '',
    'pad_counts'        => false, 
    'offset'            => '', 
    'search'            => '', 
    'cache_domain'      => 'core'
); 

$terms = get_terms( $taxonomies, $args );
foreach ( $terms as $term ) {

// here's my code for getting the posts for custom post type

$posts_array = get_posts(
                        array( 'showposts' => -1,
                            'post_type' => 'fabric_building',
                            'tax_query' => array(
                                array(
                                'taxonomy' => 'fabric_building_types',
                                'field' => term_id,
                                'terms' => $term->name,
                                )
                            )
                        )
                    );
    print_r( $posts_array ); 
}
?>

Tautan ke Codex : http://codex.wordpress.org/Function_Reference/get_terms

Courtney Ivey
sumber
Terima kasih ... tetapi masalah yang sama tetap ada .. array kosong .. apakah karena saya melakukan sesuatu yang salah dalam menentukan jenis posting kustom karena saya mendapatkan istilah array ..
Parth Kumar
Sudahkah Anda mencoba kode yang diperbarui di atas?
Courtney Ivey
1
Sebenarnya seperti yang disarankan Milo, bidang akan mengambil string .. itu adalah kesalahan .. yang saya dapatkan diselesaikan ..
Parth Kumar
0
global $post; $id = $post->ID;

$cat = get_the_category($id);
$loc = get_the_terms($id, 'taxonomy');
$posts = get_posts(
array('post_type' => 'post',
    'post_status' => 'publish', 
    'posts_per_page' => -1, 
    'category' => $cat[0]->term_id, 
    'tax_query' => array(
        array(
            'taxonomy' => 'location',
            'field' => 'id',
            'terms' => $loc[0]->term_id,
        )
    )
)
);
print_r($posts);

ini harusnya berhasil.

kdgilang
sumber
0

Mendapatkan pos yang ditugaskan untuk taksonomi saat ini

Anda dapat menambahkan kode di bawah ini di taxonomy-your_tax.php

<div class="a-article-wrapper">

                <?php 

                    $terms = wp_get_post_terms( $post->ID, 'your-taxonomy'); 
                    $terms_ids = [];

                    foreach ( $terms as $term ) {
                        $terms_ids[] = $term->term_id;
                    }

                    $args = array(
                        'post_type' => 'your-post-type',
                        'tax_query' => array(
                            'relation' => 'AND',
                            array(
                                'taxonomy' => 'your-taxonomy',
                                'field'    => 'term_id',
                                'terms'    => $terms_ids
                            )
                        ),
                    );

                    $query = new WP_Query($args);
                    if ( $query->have_posts() ) {
                        while ( $query->have_posts() ) {
                    ?>

                     <div class="row">
                        <div class="col-md-8 a-article-row">
                            <div class="row">
                                <?php $query->the_post();?>
                                <div class="a-post-time">
                                    <span class="a-current-date"><?php the_time('j F, D') ?></span>
                                    <span class="a-current-time"><?php the_time('g:i a') ?></span>
                                </div>
                                <div class="a-article-title">
                                    <?php the_title(); ?> 
                                </div>
                                <div class="a-article-content">
                                    <div id="excerpt"><?php the_excerpt(); ?></div>

                                    <?php the_content(); ?>
                                </div>
                                <div class="a-article-tags">
                                    <?php echo get_the_term_list( get_the_ID(), 'your-taxonomy', '', ',' ); ?>
                                </div>
                            </div>
                        </div>
                    </div>

                    <?php } } ?>
            </div> 
Varsha Dhadge
sumber