Reputation: 312
I have a custom post type called products
and custom taxonomy called product-category
.
Now I need to list all the posts from this product post type which have product-category assigned to them. I thought something like this could work, but no luck. Could anyone point me in the right direction, please?! Really appreciate your help!
<?php $category = get_search_query();
$args = array(
'taxonomy' => 'product_category',
'post_type' => 'products',
'category_name' => $category
);
$query = new WP_Query( $args );
// OR
$args = array(
'post_type' => 'products',
'tax_query' => array(
array(
'taxonomy' => 'product-category',
'field' => 'slug',
'terms' => $category
)
)
);
$query = new WP_Query( $args ); ?>
<?php if ( $query->have_posts() ): ?>
<div class="products">
<ul>
<?php while ( $query->have_posts() ): $query->the_post(); ?>
<li><?php get_template_part( 'template-parts/content', 'search' ); ?></li>
<?php endwhile; ?>
</ul>
</div>
<?php else: ?>
<?php get_template_part( 'template-parts/content', 'none' ); ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
Upvotes: 0
Views: 60
Reputation: 881
You might need to add the relation
to your args.
$args = array(
'post_type' => 'products',
'posts_per_page' => -1,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_category',
'terms' => $category,
'field' => 'slug',
),
),
);
Also, check:
products
and not product
?)product_category
but in your second query you have product-category
. Should it be a hyphen or an underscore?$category
valid?Upvotes: 1