简体   繁体   中英

exclude a custom taxonomy from wp_query

IN my wp site, I have 2 category and a few post like that..

cat_1- post 1, post 2, post 3.
cat_2- post 2, post 3, post 4.

When i am in post 3 page, i want to show releted article only from category 2.here is my code:but it returns empty. Probably i did not catch the logic. Any help would be highly appreciated.

<?php

$terms        = get_the_terms( $post_id, 'category' );
if( empty( $terms ) ) $terms = array();
$term_list    = wp_list_pluck( $terms, 'slug' );

$related_args = array(
    'post_type'      => 'post',
    'posts_per_page' => -1,
    'post_status'    => 'publish',
    'post__not_in'   => array( get_the_ID() ),
    'orderby'        => 'desc',
    'tax_query'      => array(
    'relation' => 'AND',
        array(
            'taxonomy' => 'category',
            'field'    => 'slug',
            'terms'    => $term_list
        ),
        array(
            'taxonomy' => 'category',
            'terms' => array('cat_1'),
            'field' => 'slug',
            'operator' => 'NOT IN',
    ),
    ),
);


$related = new WP_Query( $related_args );

if( $related->have_posts() ):
?>
    <div class="post-navigation">
        <h3>Related posts</h3>
        <ul>
            <?php while( $related->have_posts() ): $related->the_post(); ?>
                <li><?php the_title(); ?></li>
            <?php endwhile; ?>
        </ul>
    </div>
<?php
endif;
wp_reset_postdata();
?>

here is the following query ...may be helpful to you...

$custom_tex=array(array('taxonomy'=>'category','field'=>'slug','terms'=>'cat_2'));
$new = new WP_Query(array('post_type'=>'post','posts_per_page'=>-1, 'tax_query'=>$custom_tex,'order' => 'DESC','orderby' => 'ID'  ));

while ($new->have_posts()) : $new->the_post(); 
echo $post->post_title;
echo "<br>";
 endwhile;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM