私は、Wordpress Plugin WooCommerceを実行しているワードプレスサイトを持っています。このサイトは膨大な量の製品のため、サイト外の製品リストを管理してアップロードしています。多くの製品にはまだ画像がありませんが、ハードコードされた画像URLがあるので、取得したら追加することができます。壊れた画像を取得するために、私はちょうど画像のサイズを少し調べて、見つけられずにプレースホルダーに置き換えることができます。商品画像で商品を表示するWoocommerce
$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; ?>
可能性のある論理的な解決策は、whileループでいくつかの製品を無視するだろう(それは画像がない場合は別の実行になるだろう)、または何らかの形で必要条件の一部として、私のクエリをコーディングつまり、$ argsにピットインしますか?
ご協力いただければ幸いです。