我有一个运行 wordpress 插件 WooCommerce 的 wordpress 网站。由于本网站处理的产品数量庞大,我们一直在管理网站外的产品列表并上传。很多产品还没有图像,但它们有一个硬编码的图像 url,所以我们可以在获得它们时添加它们。为了解决损坏的图像,我只需搜索一下图像大小,如果找不到它并用占位符替换它。
$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), $size);
if (@getimagesize($src[0])) {
//display product image
} else {
//display placeholder image
}
这在大多数情况下都可以正常工作,但现在我正在努力在一个类别中显示产品。我想先显示所有有图像的产品,然后显示没有图像的产品。问题是一旦循环开始,如果我排除没有图像的产品,它将循环遍历前 12 个产品,并且只显示有图像的 12 个产品的子集。我想要它做的是继续循环,直到我有 12 个带有图像的产品(如果有 12 个带有图像的产品)。
这就是我现在所拥有的不起作用。
<?php if ( have_posts() ) : ?>
<ul class="products">
<?php while ( have_posts() ) : the_post(); ?>
<?php
$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), $size);
if (@getimagesize($src[0])) {
woocommerce_get_template_part( 'content', 'product' );
}
?>
<?php endwhile; // end of the loop. ?>
</ul>
<?php endif; ?>
我无法编码的可能的逻辑解决方案是在循环中忽略某些产品(因此如果没有图像,它将再次运行)或以某种方式将我的查询编码为循环要求的一部分,即将其放入$args?
任何帮助将不胜感激。