Afișează Toate Produsele pe Categorii cu WooCommerce
Cu WooCommerce, doresc să afișez toate categoriile dintr-un magazin ca titluri, cu toate produsele lor listate mai jos într-o listă neordonată. Este posibil să fac asta? Am văzut câteva soluții care permit afișarea unei liste de categorii sau a unei liste de produse pentru o anumită categorie, dar nimic care să parcurgă tot conținutul așa cum am descris.
Iată ce folosesc în prezent pentru a lista toate categoriile:
<?php
$args = array(
'number' => $number,
'orderby' => $orderby,
'order' => $order,
'hide_empty' => $hide_empty,
'include' => $ids
);
$product_categories = get_terms( 'product_cat', $args );
$count = count($product_categories);
if ( $count > 0 ){
foreach ( $product_categories as $product_category ) {
echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</h4>';
}
}
?>

Am rezolvat! Codul de mai jos listează automat toate categoriile și postările din fiecare categorie!
$args = array(
'number' => $number,
'orderby' => 'title',
'order' => 'ASC',
'hide_empty' => $hide_empty,
'include' => $ids
);
$product_categories = get_terms( 'product_cat', $args );
$count = count($product_categories);
if ( $count > 0 ){
foreach ( $product_categories as $product_category ) {
echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>';
$args = array(
'posts_per_page' => -1,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
// 'terms' => 'white-wines'
'terms' => $product_category->slug
)
),
'post_type' => 'product',
'orderby' => 'title,'
);
$products = new WP_Query( $args );
echo "<ul>";
while ( $products->have_posts() ) {
$products->the_post();
?>
<li>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</li>
<?php
}
echo "</ul>";
}
}

Fain. Dacă vrei să mergi cu adevărat la extrem, ai putea să te uiți la Transients API... asta te-ar ajuta să nu mai rulezi atâtea interogări la fiecare încărcare de pagină.

Cum pot obține thumbnail-urile imaginilor pentru fiecare categorie?

@AlyssaReyes categoriile nu au în mod implicit thumbnail-uri; ai configurat un câmp personalizat pentru categoriile tale în acest scop? Poți posta această întrebare într-un thread nou cu mai multe detalii și să îmi trimiți link-ul ca să înțeleg mai bine?

Mulțumesc frumos, mi-ai economisit timp și m-ai îndreptat în direcția corectă. Singurul mod în care aș putea îmbunătăți acest răspuns este să folosesc clasa de interogare integrată a WooCommerce: WC_Product_Query
, în loc de WP_Query
, apoi să folosesc o buclă foreach
în loc de o buclă while
. Pentru motivele din spatele acestei recomandări, poți consulta documentația de pe Github pentru interogare: https://github.com/woocommerce/woocommerce/wiki/wc_get_products-and-WC_Product_Query#description, dar esența este: > "utilizarea interogărilor personalizate WP_Queries este probabil să-ți strice codul în versiunile viitoare ale WooCommerce, deoarece datele se migrează către tabele personalizate pentru o performanță mai bună."
