php - Woocommerce如何展示产品有两个类别,其中一个应该是常见的
问题描述
我正在开发自定义 Woo 商店主题。我想在 front-page.php 中显示 NEW COLLECTION 产品,它应该是一个块,并且在几个较小的块中显示产品和它们的另一个 vcategories,因为它们将有共同的类别 NEW 和另一个类别取决于 BEDROOM/BATHROOM/CLOTHING,现在我已经按一个类别重新显示。
<div class="col-md-12 row">
<?php
$args = array(
'post_type' => 'product',
'posts_per_page' => 4,
'product_cat' => 'clothing'
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
global $product;
$colors = explode(',',$product->get_attribute('color'));
$price = $product->get_price_html();
?>
<div class="col-md-3 d-flex flex-column">
<div class="homepage__single-product">
<a href="<?php the_permalink(); ?>">
<img src="<?php echo the_post_thumbnail_url(); ?>">
<p class="homapage__single-product-title"><?php the_title(); ?></p>
<p class="homapage__single-product-price"><?php echo $price ?></p>
<p class="homepage__single-product-color">
<?php foreach ($colors as $color) {
echo '<span class="attribute-color '. strtolower(trim($color)) .'"></span>';
}
?>
</p>
</a>
</div>
</div>
<?php
endwhile;
wp_reset_query();
?>
</div>
我希望我的问题很清楚,我正在添加带有设计的图像以便更好地理解。我认为它应该像这段代码一样,但是这段代码应该在 $args 中有 NEW 作为 product_cat,然后在循环内部以某种方式执行相同的块,但使用其他类别。
解决方案
您可以使用tax_query
从多个类别中获取产品。检查下面的代码。
<div class="col-md-12 row">
<?php
$prod_categories = array( 'bedroom', 'bathrooms', 'clothing'); //category slugs
$args = array(
'post_type' => 'product',
'posts_per_page' => 4,
);
if (!empty($prod_categories)) {
$args['tax_query'] = array(
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $prod_categories,
'operator' => 'IN',
));
}
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
global $product;
$colors = explode(',',$product->get_attribute('color'));
$price = $product->get_price_html();
?>
<div class="col-md-3 d-flex flex-column">
<div class="homepage__single-product">
<a href="<?php the_permalink(); ?>">
<img src="<?php echo the_post_thumbnail_url(); ?>">
<p class="homapage__single-product-title"><?php the_title(); ?></p>
<p class="homapage__single-product-price"><?php echo $price ?></p>
<p class="homepage__single-product-color">
<?php foreach ($colors as $color) {
echo '<span class="attribute-color '. strtolower(trim($color)) .'"></span>';
}
?>
</p>
</a>
</div>
</div>
<?php
endwhile;
wp_reset_query();
?>
</div>
推荐阅读
- spring-boot - 将 WebClient 与 Spring MVC 一起使用时要使用的正确依赖项
- python - 如何通过 csv 或 xlsx 电子表格中的 input() 将用户输入到 excel 电子表格中?
- javascript - JavaScript 中的自适应卡片自定义操作
- c# - FileSystemWatcher 在 Linux 中不起作用,有没有办法解决这个问题?
- hibernate - 将数据库查询限制为单个实体
- office-js - 在 Office 加载项部署中包括自定义 javascript 文件
- python-3.x - 如何在不被禁止的情况下从 Instagram 帐户获取关注者列表?
- database-design - 同一张表之间的一对一和一对多关系
- flutter - 在 Flutter 函数问题中动态计算列表的总和
- pandas - 按列过滤熊猫并随机化