我正在为我的woocommerce网站上的每个类别设置随机缩略图。默认情况下会分配占位符,但您可以通过在仪表板中上传/分配图像来覆盖占位符。
我想要做的是例如,“男士”是我的父类别,“牛仔裤”是我的子类别。所以我想要显示“Mens>> Jeans”类别中的项目的随机图像......我希望这是有道理的。
我现在提出的是这个(在我的wc_template_functions.php文件中)
args = array( 'post_type' => 'product', 'posts_per_page' => 1, 'product_cat' => $category->name, 'orderby' => 'rand' );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) { $loop->the_post();}{
$image = print_r(get_the_post_thumbnail($loop->post->ID, 'shop_catalog'));}
$image = $image[0];
$image = apply_filters( 'woocommerce_placeholder_img_src',$image[0] );
这是生成图像,但我遇到的问题是,说我在“Mens”和“Womens”的父类别下有“牛仔裤”,显示的图片完全无视它是否在“男装”或“女性”类别。所以我在“Men>> Jeans”中获得了女式牛仔裤的图片。
我需要做的是能够指定两个类别,“牛仔裤”和“男士”,但我不确定如何做到这一点。我被告知,因为产品不是帖子我不能指定产品类别名称,我必须使用分类法吗?
有人可以帮忙,并指出我正确的方向吗?
干杯 克里斯
答案 0 :(得分:0)
您就是这样做的:
$query_args = array(
'post_status' => 'publish',
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => array( 27, 25 ),
'operator' => 'AND'
)
)
);
$loop = new WP_Query($query_args);
while ($loop->have_posts() )
{
//Setup post data
$loop->the_post();
echo get_the_title();
}
这将获得ID为25和27的两个类别的产品。 你也可以使用'field'=> 'slug''+如果您更喜欢使用slug指定,但我认为在这种情况下使用ID会更快地进行查询。
答案 1 :(得分:0)
<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 woocommerce_show_product_sale_flash( $post, $product ); ?>
<?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" width="300px" height="300px" />'; ?>
<h3><?php the_title(); ?></h3>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
答案 2 :(得分:0)
<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 woocommerce_show_product_sale_flash( $post, $product ); ?>
<?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" width="300px" height="300px" />'; ?>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
<h3><?php the_title(); ?></h3>