Un utente ha chiesto 👇
Sto creando un prodotto custom-archive.php come pagina del mio negozio principale, quindi nel tema child ho questo ciclo di prodotto personalizzato:
woocommerce_product_loop_start();
if ( wc_get_loop_prop( 'total' ) ) {
$categories = get_terms( ['taxonomy' => 'product_cat', 'hide_empty' => false] );
foreach ( $categories as $category ) {
$title_value = (mb_strlen($category->parent) + 1);
print_r("<h$title_value>$category->name</h$title_value>");
while ( have_posts() ) {
the_post();
/**
* Hook: woocommerce_shop_loop.
*/
do_action( 'woocommerce_shop_loop' );
wc_get_template_part( 'content', 'product' );
}
}
}
woocommerce_product_loop_end();
Il vero problema è che mostra tutti i prodotti disponibili nel negozio, per ogni categoria, perché non so come rispondere alla domanda su come ottenere prodotti solo con i prodotti della categoria attuale. Come posso dirgli di farlo?
Questo argomento è stato modificato 1 anno, 3 mesi fa da.
Supporto per plugin
(@ thup90)
1 anno, 3 mesi fa
Ciao,
Puoi utilizzare il tag condizionale is_product_category () per ottenere prodotti da una categoria: https://docs.woocommerce.com/document/conditional-tags/#section-5
(@harishanker)
1 anno, 3 mesi fa
Ciao @adzetko
Volevo solo darti un input aggiuntivo sulla tua domanda.
Ho guardato il codice che hai condiviso.
Vedo che hai un trie per ottenere un elenco di categorie con:
$categories = get_terms( ['taxonomy' => 'product_cat', 'hide_empty' => false] );
foreach ( $categories as $category ) {
Tuttavia, il codice per visualizzare i post è il seguente:
while ( have_posts() ) {
the_post();
Vedo che l’hai preso da qui: https://github.com/woocommerce/woocommerce/blob/0e2ed1f408cae6989a508d6f23b233c20ae31aa3/templates/archive-product.php#L61-L62
Ciò restituisce ogni prodotto se utilizzato in un modello personalizzato. Per visualizzare l’elenco delle categorie, sarà necessaria una nuova chiamata WP_Query()
con il $category
variabile.
Questo spiega come puoi WP_Query()
per le variabili di categoria: https://stackoverflow.com/a/47650240
Puoi usare questo WP_Query
per generare prodotti invece di: while ( have_posts() ) { the_post();
individualmente (generato da ogni prodotto).
Ad esempio, se utilizzi la variabile $loop
generare WP_Query()
i prodotti appartenenti alla categoria (come menzionato in sezione flusso-flusso Ho condiviso sopra), puoi utilizzare il seguente codice per elencare solo i post relativi a quella categoria:
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
wc_get_template_part( 'content', 'product' );
endwhile;
} else {
echo __( 'No products found' );
}
Spero abbia senso.
Facci sapere se hai altre domande. Siamo felici di aiutarti!
Questa risposta è stata modificata 1 anno, 3 mesi fa. Supporto per plugin
(@ rynald0s)
1 anno, 2 mesi fa
Ciao!
Non ti rispondiamo da un po ‘, quindi vado avanti e contrassegno questo thread come risolto. Se hai altre domande, inizia una nuova discussione.
Saluti!
Was this helpful?
0 / 0