WooCommerce产品循环的首要问题

时间:2018-06-26 07:07:57

标签: php wordpress woocommerce product custom-taxonomy

我在WooCommerce中遇到产品循环问题。我的代码如下:

<?
$args = array(
  'post_type' => 'product',
  'posts_per_page' => 4,
  'tax_query' => array(
    array(
      'taxonomy' => 'product_visibility',
      'field'    => 'name',
      'terms'    => 'featured',
    ),
    array(
      'key' => '_stock_status',
      'value' => 'outofstock',
      'compare' => 'NOT IN'
    )
  ),
  'suppress_filters' => 0
);
$loop = new WP_Query($args);
while ($loop->have_posts()) : $loop->the_post();
  wc_get_template_part('content', 'product');
endwhile;
wp_reset_postdata();
?>

如您所见,循环显示了特色产品,但排除了缺货的产品。问题在于WC类“ first”和“ last”没有正确添加到结果中。

循环中的第一个产品获得类“ last”,而不是应有的第四个。这取决于我设置的特色产品。

有人经历过吗?

编辑:该问题似乎与在同一页面上有两个产品查询有关。特色查询显示3种产品,这使得待售产品的第一个产品具有最后一个类别。

2 个答案:

答案 0 :(得分:1)

我只是遇到了同样的问题。我检查了WooCommerce的源代码,问题出在wc_get_loop_class()方法中。

要解决此问题,只需致电:

wc_set_loop_prop( 'loop', 0 );

在每个产品查询之前。这样,内部产品循环计数器将正确重置。

答案 1 :(得分:0)

我使用这段脏代码删除了不必要的第一个/最后一个类:

function loop_columns() {
  return 1000;
}
add_filter('loop_shop_columns', 'loop_columns', 999);