Woocommerce получает продукты по определенным категориям

Я разрабатываю темы для woocommerce, мне нужна помощь, чтобы получить информацию о продуктах по категориям, например,
Я хочу отображать товары из категории «Рубашки», ограниченные 3 позициями, вот код из тем «Ву», которые показывают товары по избранным товарам (я попытался изменить отображение по категориям, но не работает)

<ul class="featured-products products">

<?php
$args = array( 'post_type' => 'product', 'posts_per_page' => 6, 'meta_query' => array( array('key' => '_visibility','value' => array('catalog', 'visible'),'compare' => 'IN'),array('key' => '_featured','value' => 'yes')) );
$i = 0;
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); $_product; $i++;

if ( function_exists( 'get_product' ) ) {
$_product = get_product( $loop->post->ID );
} else {
$_product = new WC_Product( $loop->post->ID );
}

?>

<li class="product <?php if ($i%3==0) echo ' last'; if (($i-1)%3==0) echo ' first'; ?>">
<div class="inner">
<?php woocommerce_show_product_sale_flash( $post, $_product ); ?>
<a href="<?php echo get_permalink( $loop->post->ID ) ?>" title="<?php echo esc_attr($loop->post->post_title ? $loop->post->post_title : $loop->post->ID); ?>">
<?php if (has_post_thumbnail( $loop->post->ID )) echo get_the_post_thumbnail($loop->post->ID, 'shop_catalog'); else echo '<img src="'.woocommerce_placeholder_img_src().'" alt="Placeholder" />'; ?>
<h3><?php the_title(); ?></h3>
<span class="price"><?php echo $_product->get_price_html(); ?></span>
</a>
<?php woocommerce_template_loop_add_to_cart( $loop->post, $_product ); ?>
<?php smpl_product_more_details(); ?>
</div>
</li>

<?php endwhile; ?>

</ul>

Я новичок в этом,

заранее спасибо

1

Решение

Замените $ args следующим кодом

$args = array(
'post_type'             => 'product',
'post_status'           => 'publish',
'tax_query'             => array(
array(
'taxonomy'      => 'product_cat',
'terms'         => array_map( 'sanitize_title', explode( ',', 'ENTER_CATEGORY' ) ),
'field'         => 'slug',
'operator'      => $atts['operator']
)
)
);

Вам просто нужно заменить ENTER_CATEGORY слово с названием категории, которую вы хотите отобразить.

Дайте мне знать, если это соответствует вашим требованиям.

0

Другие решения

$prod_categories = array(10, 27);
$product_args = array(
'numberposts' => $limit,
'post_status' => array('publish', 'pending', 'private', 'draft'),
'post_type' => array('product', 'product_variation'),
'orderby' => 'ID',
'suppress_filters' => false,
'order' => 'ASC',
'offset' => 0
);

if (!empty($prod_categories)) {
$product_args['tax_query'] = array(
array(
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => $prod_categories,
'operator' => 'IN',
));
}

$products = get_posts($product_args);
0

По вопросам рекламы [email protected]