Woocommerce获得多个类别的产品

时间:2014-07-30 17:30:15

标签: php wordpress woocommerce

我正在为我的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”中获得了女式牛仔裤的图片。

我需要做的是能够指定两个类别,“牛仔裤”和“男士”,但我不确定如何做到这一点。我被告知,因为产品不是帖子我不能指定产品类别名称,我必须使用分类法吗?

有人可以帮忙,并指出我正确的方向吗?

干杯 克里斯

3 个答案:

答案 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>