Come personalizzare la visualizzazione per le pagine archivio e categoria prodotto in WooCommerce?
Finora
Ciao, capisco che la mia domanda sia molto simile a una domanda comune su 'woocommerce'.
Ho utilizzato vari hook e filtri di WooCommerce, creando copie dei file template originali di WooCommerce nel mio child theme in una cartella chiamata woocommerce/.
Questo funziona e sono in grado di apportare le modifiche che integrano WooCommerce nel mio tema.
Quello che sto cercando di fare
WooCommerce utilizza archive-product.php per visualizzare le categorie di prodotti. Utilizza anche questo template per visualizzare i prodotti della categoria.
Vorrei stilizzare la pagina prodotti in modo molto diverso dalla pagina categoria e creare un altro template di archivio che mostri i prodotti di una categoria
Sto pensando che utilizzare un nuovo template products-product.php sarebbe la mia migliore opzione. Sono molto interessato a imparare sempre di più sul plug-in, quindi sto cercando di evitare soluzioni rapide con CSS e imparare a usare i file template e gli hook.
Consigli o indicazioni nella giusta direzione sarebbero molto apprezzati.

Generalmente, puoi dire a WordPress di caricare un template diverso. Gli approcci più comuni utilizzano l'hook template_redirect
o template_include
. È preferibile utilizzare template_include
come descritto in questo articolo. Di seguito un esempio su come procedere:
Codice:
// carica il template dell'archivio categorie di WooCommerce
add_filter( 'template_include', 'wpse138858_woocommerce_category_archive_template' );
function wpse138858_woocommerce_category_archive_template( $original_template ) {
// carichiamo il template condizionalmente,
// ma solo se siamo effettivamente in un archivio categorie di WooCommerce
if ( is_product_category() ) {
// devi prima creare il template che vuoi utilizzare qui
return get_template_directory().'/woocommerce-category-archive.php';
} else {
return $original_template;
}
}
Informazioni aggiuntive:
Note:
- non testato
- Potrebbe esserci un modo più specifico per farlo con WooCommerce, a seconda di come gestiscono il caricamento dei template. Per questo devi approfondire la ricerca e/o esaminare il codice di WooCommerce.
Modifica:
Quello che stai cercando - se vuoi farlo nel modo di WooCommerce - è la funzione wc_get_template_part()
- precedentemente, prima di WC 2.1, woocommerce_get_template_part()
, ora deprecata. Ho dato una risposta tempo fa su come utilizzare quest'ultima, puoi fare lo stesso per la funzione rinominata - la funzionalità è la stessa - di conseguenza. La risposta riguarda ovviamente l'uso diretto della funzione, nel tuo caso probabilmente vuoi e dovresti utilizzare l'hook corrispondente wc_get_template_part
. Con queste informazioni dovresti essere in grado di farlo nel modo corretto per WooCommerce.

Grazie per il consiglio. Sono ancora alla ricerca di una soluzione più specifica per WooCommerce, ma questa potrebbe funzionare. Grazie ancora @ialocin

Come dice @RobertWilkins: »Questo codice ha funzionato perfettamente per me e ha posto fine a diverse ore di grattacapi... Grazie mille!!!«
