簡體   English   中英

Woocommerce獲得了多個類別的產品

[英]Woocommerce get product that is in multiple categories

我正在為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”下擁有“ Jeans”,所顯示的圖片完全忽略了它在“ Mens”還是“ Womens”中類別。 因此,我在“男裝>>牛仔褲”中獲得了女裝牛仔褲的圖像。

我需要做的是能夠指定兩個類別,“牛仔褲”和“男士”,但是我不確定如何做到這一點。 有人告訴我,因為產品不是帖子,所以我無法指定產品類別名稱,我必須使用分類法嗎?

有人可以幫我指出正確的方向嗎?

干杯克里斯

這是您的操作方式:

$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'´ +,但是在這種情況下,我認為使用ID可以使查詢更快。

<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(); ?>
<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM