获取当前产品类别中的产品

时间:2013-08-30 作者:Adam Wadsworth

我目前正在玩WOOCOMMERCE V2。0.13并且我试图显示当前产品类别中的每个产品(例如,在构建页面上的建筑产品),我已设法显示当前类别中的单个产品,但如果该产品也在另一个类别中(例如,建筑和环境),则当前类别将中断,并显示来自建筑或环境的零产品。

如果我能在展示当前类别的产品方面得到一些建议/帮助,并允许它与多个类别的产品一起使用,我真的非常感谢这些帮助和时间。

我非常高兴重新编码这整个部分以使其正常工作,下面是我的代码,如果我遗漏了什么,请告诉我。

谢谢你

最后我自己找到了解决办法,我要感谢所有帮助我的人。

    <?php if ( have_posts() ) : ?>
    <?php woocommerce_product_loop_start(); ?>
    <?php woocommerce_product_subcategories(); ?>
        <div class="courses-main">
            <ul class="products">
                <?php while ( have_posts() ) : the_post(); ?>
                    <li>   
                        <a href="<?php echo get_permalink(); ?>">
                            <?php
                                if ( has_post_thumbnail() ) {
                                    $image = get_the_post_thumbnail( $post->ID, apply_filters( \'single_product_large_thumbnail_size\', \'shop_single\' ) );
                                    $image_title = esc_attr( get_the_title( get_post_thumbnail_id() ) );
                                    $image_link = get_permalink( $product_id );
                                    $attachment_count   = count( $product->get_gallery_attachment_ids() );
                                    echo apply_filters( \'woocommerce_single_product_image_html\', sprintf( \'<a href="%s" itemprop="image" class="woocommerce-main-image zoom" title="%s"  rel="prettyPhoto\' . $gallery . \'">%s</a>\', $image_link, $image_title, $image ), $post->ID );
                                } else {
                                    echo apply_filters( \'woocommerce_single_product_image_html\', sprintf( \'<img src="%s" alt="Placeholder" />\', woocommerce_placeholder_img_src() ), $post->ID );
                                }
                            ?>
                        </a>
                        <div>
                            <h3>
                                <a href="<?php echo get_permalink(); ?>"><?php the_title();?></a>
                                    <span>
                                        <?php if ( $price_html = $product->get_price_html()) { ?>
                                            <span class="price"><?php echo $price_html; ?></span> 
                                        <?php } ?>
                                    </span>
                             </h3>
                        </div>
                        <div>
                            <p>
                                <?php
                                    $excerpt = get_the_excerpt();
                                    echo string_limit_words($excerpt,15);
                                ?>
                            </p>
                        </div>
                    </li>
            <?php endwhile;?>
        </ul>
    </div>
    <?php woocommerce_product_loop_end(); ?>
<?php endif; ?>

1 个回复
SO网友:Prince Singh

您说过您可以获取当前产品类别名称,并将其存储在$current_product_category 变量现在请尝试此代码。。

<ul class="products">
    <?php
        $args = array( \'post_type\' => \'product\', \'posts_per_page\' => 1, \'product_cat\' => $current_product_category, \'orderby\' => \'rand\' );
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>

            <h2><?php echo $current_product_category ?></h2>

                <li class="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 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>

                        <span class="price"><?php echo $product->get_price_html(); ?></span>                    

                    </a>

                    <?php woocommerce_template_loop_add_to_cart( $loop->post, $product ); ?>

                </li>

    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
</ul>

结束

相关推荐

将外部PHP文件包含到WordPress自定义模板中

是否可以将外部PHP文件包含到自定义模板中?我正在尝试将博客添加到我的网站。我的站点中已经有页眉、页脚和侧栏布局。我可以在自定义模板中使用它们吗?<?php /* Template Name: Blog */ ?> <?php include( PATH . \'http://www.example.com/includes/header.php\' ); ?> <?php if (have_posts()) : while