Personalizare afișare WooCommerce pentru paginile de arhivă și categorii de produse
Până acum
Salut, înțeleg că întrebarea mea este strâns legată de o întrebare comună despre 'WooCommerce'.
Am folosit diverse hook-uri și filtre WooCommerce și am creat copii ale fișierelor de template originale în tema mea child, într-un folder numit woocommerce/.
Acest lucru funcționează și pot face modificările necesare pentru a integra WooCommerce în tema mea.
Ceea ce încerc să realizez
WooCommerce folosește archive-product.php pentru a afișa categoriile de produse. De asemenea, folosește acest template pentru a afișa produsele din categorie.
Doresc să stilizez pagina de produse foarte diferit față de pagina de categorie și să creez un alt template de arhivă care să afișeze produsele unei categorii
Mă gândesc că utilizarea unui nou template products-product.php ar fi cea mai bună opțiune. Sunt foarte interesat să învăț tot mai multe despre acest plugin, așa că încerc să evit soluțiile rapide cu CSS și să învăț să folosesc fișierele de template și hook-urile.
Orice sfat sau indicații în direcția corectă ar fi foarte apreciate.

În general, poți instrui WordPress să încarce un șablon diferit. Cele mai des întâlnite abordări folosesc fie hook-ul template_redirect
, fie template_include
. Este preferabil să folosești template_include
așa cum este descris în acest articol. Iată un exemplu despre cum să abordezi această situație:
Cod:
// încarcă șablonul pentru arhiva de categorii WooCommerce
add_filter( 'template_include', 'wpse138858_woocommerce_category_archive_template' );
function wpse138858_woocommerce_category_archive_template( $original_template ) {
// încărcăm șablonul condiționat,
// dar doar dacă suntem într-adevăr pe o arhivă de categorii WooCommerce
if ( is_product_category() ) {
// trebuie să creezi mai întâi șablonul pe care vrei să îl folosești aici
return get_template_directory().'/woocommerce-category-archive.php';
} else {
return $original_template;
}
}
Informații suplimentare:
Note:
- netestat
- Poate exista o metodă mai specifică de a face asta pentru/cu WooCommerce, în funcție de modul în care acesta gestionează încărcarea șabloanelor. Pentru aceasta, va trebui să extinzi cercetarea și/sau să aprofundezi codul WooCommerce.
Editare:
Ceea ce cauți - dacă vrei să o faci în modul WooCommerce - este funcția wc_get_template_part()
- anterior, înainte de WC 2.1, woocommerce_get_template_part()
, acum învechită. Am dat un răspuns acum ceva timp despre cum să folosești cea din urmă, poți face același lucru pentru funcția cu noul nume - funcționalitatea este aceeași - în mod corespunzător. Răspunsul se referă, desigur, la utilizarea directă a funcției, în cazul tău probabil vrei și ar trebui să folosești hook-ul corespunzător wc_get_template_part
. Cu aceste informații la îndemână, ar trebui să poți face acest lucru în modul WooCommerce.

Mulțumesc pentru sfat. Sunt încă în căutarea unei soluții mai specifice pentru WooCommerce, dar aceasta ar funcționa. Mulțumesc din nou @ialocin

Cum spune @RobertWilkins: »Acest cod a funcționat perfect pentru mine și a pus capăt la câteva ore de încercări... Mulțumesc mult!!!«
