Ich habe eine Wordpress-Website mit dem WordPress-Plugin WooCommerce. Aufgrund der Menge an Produkten, die diese Website verwaltet, verwalten wir die Produktliste außerhalb der Website und laden sie hoch. Viele der Produkte haben noch keine Bilder, aber sie haben eine fest codierte Bild-URL, so dass wir sie hinzufügen können, wenn wir sie bekommen. Um gebrochene Bilder zu umgehen, suche ich nur ein wenig nach der Bildgröße und wenn ich sie nicht finde und durch einen Platzhalter ersetzen kann.Woocommerce Produkte mit Produkt Bilder anzeigen
$src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), $size);
if (@getimagesize($src[0])) {
//display product image
} else {
//display placeholder image
}
Dies funktioniert in den meisten Fällen gut, aber jetzt arbeite ich an der Anzeige der Produkte in einer Kategorie. Ich möchte zuerst alle Produkte mit Bildern anzeigen und dann die Produkte ohne Bilder anzeigen. Das Problem ist, wenn die Schleife startet, wenn ich Produkte ohne Bilder ausschließe, durchläuft sie die ersten 12 Produkte und zeigt nur eine Teilmenge der 12 Bilder an. Was ich möchte, ist das Schleifen, bis ich 12 Produkte mit Bildern habe (wenn es 12 Produkte mit Bildern gibt).
Dies ist, was ich gerade jetzt habe, die nicht funktioniert.
<?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; ?>
Mögliche logische Lösungen, die ich Code nicht in der Lage gewesen wären, eine Produkt, während in der Schleife zu ignorieren (so würde es eine weiteren Lauf machen, wenn kein Bild vorhanden ist) oder irgendwie meine Abfrage als Teil der Anforderung codiert der Schleife, dh pit es in den $ Argumenten?
Jede Hilfe würde sehr geschätzt werden.