【问题标题】:Wordpress Woocommerce related products with one productWordpress Woocommerce 相关产品与一种产品
【发布时间】:2017-03-12 16:05:29
【问题描述】:

我目前正在使用 Wordpress 设计一个爱好 wordpress 网站并实施了 WooCommerce。我正在尝试在产品页面的内容下显示产品的相关产品,并且正在查看 Wordpress 的相关功能。我可以看到 related_products 查询返回单行,但是当它只返回单个产品时,以下 WooCommerce 循环将失败:

if ( $products->have_posts() ) : ?>

    <div class="related products">

        <h2><?php _e( 'Related Products', 'woocommerce' ); ?></h2>

        <?php woocommerce_product_loop_start(); ?>
                <?php var_dump($products->the_post()); ?>
            <?php while ( $products->have_posts() ) : $products->the_post(); ?>

                <?php wc_get_template_part( 'content', 'product' ); ?>

            <?php endwhile; // end of the loop. ?>

        <?php woocommerce_product_loop_end(); ?>

    </div>

<?php endif;

它显示“相关产品”,但对于单个结果,它不显示内容,对于多个结果,显示行。

上面的 WooCommerce 循环是否存在问题,或者我应该查看查询吗?

谢谢

【问题讨论】:

  • &lt;?php var_dump($products-&gt;the_post()); ?&gt; - 在开始 while 循环之前调用 the_post()。因此,对于单个发布结果,您迭代循环,而 while 循环将不会启动,因为循环已经为空。
  • 检查这个简单的woocommerce related products 插件是否有帮助

标签: php mysql wordpress


【解决方案1】:

我设法解决了这个问题,我对过滤器的参数不准确,将它们更新为以下内容并且它起作用了:

$args = apply_filters( 'woocommerce_related_products_args', array(
    'post_type'            => 'product',
    'posts_per_page'       => 14,
    'post__in'             => $related,
    'post__not_in'         => array( $product->id )
) );

【讨论】:

    猜你喜欢
    • 2016-09-01
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    相关资源
    最近更新 更多