我正在使用WooCommerce和Wordpress。我试图返回一个类别中的所有项目,但是,根据我有多少项目,我会返回多个结果。
当我只有两张t恤图片时,每张图片会显示两次。一旦我添加了第三件衬衫,它会显示每件衬衫3次。我的代码是:
$args = array(
\'post_type\' => \'product\',
\'stock\' => 1,
\'posts_per_page\' => 9,
\'product_cat\' => $pagename,
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
foreach ( $loop->posts as $p ) {
$products = new WC_Product($p->ID);
echo "<div class=\'col-md-4\'>";
the_post_thumbnail();
echo "</div>";
wp_reset_query();
}
endwhile;
?>
我试过移动
wp_reset_query()
到多个地方(即在foreach循环中),但我得到的最好结果是一个有适当照片的div,然后是一些空白div。使用时
var_dump()
, 看起来可能是新的
WP_Query($args)
它本身
我以前使用过wp_reset_postdata()
并已切换到wp_reset_query()
由于在这里发现了一些结果,但它没有帮助。
提前谢谢。
最合适的回答,由SO网友:Arturo Gallegos 整理而成
您的循环是错误的,您不应该在while中使用foreach,只需使用您的循环变量在本例中添加经典的the\\u post()
例如
<?php
$args = array(
\'post_type\' => \'product\',
\'stock\' => 1,
\'posts_per_page\' => 9,
\'product_cat\' => $pagename,
);
$loop = new WP_Query( $args );
while($loop->have_posts()){
$loop->the_post();
?>
<div class="col-md-4">
<?php the_post_thumbnail(); ?>
</div>
<?php
}
?>