ワードプレスプラグインWooCommerceを実行しているワードプレスサイトがあります。このサイトで扱っている商品の量が非常に多いため、サイト外で商品リストを管理してアップロードしています。多くの製品にはまだ画像がありませんが、画像の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?
どんな助けでも大歓迎です。