Personalizare afișare WooCommerce pentru paginile de arhivă și categorii de produse

22 mar. 2014, 18:03:25
Vizualizări: 18.1K
Voturi: 3

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.

9
Comentarii

Ai încercat vreun plugin de construire de pagini? Poți crea o pagină personalizată archive-products și afișa produsele așa cum dorești. Există câteva constructoare de pagini gratuite care sunt foarte bune (cum ar fi: http://siteorigin.com/page-builder/)

item251 item251
22 mar. 2014 18:24:27

Această întrebare a fost pusă în așteptare din cauză că este off topic. Poate cineva să-mi explice pe scurt de ce? Am descoperit un răspuns foarte simplu care este foarte specific pentru plugin și nu pentru codare generală. Văd multe întrebări foarte asemănătoare pe site. Mulțumesc

JohnLion JohnLion
22 mar. 2014 20:51:37

Ai dreptate, există multe întrebări similare cu aceasta care nu sunt considerate off-topic, dar în general regula este »nu tratăm (..) întrebări legate de plugin-uri și teme terțe« așa cum este menționat pe pagina de ajutor on-topic. Motivul pentru care aceasta a fost pusă în așteptare este că woocommerce este clar un plugin terț. Apropo, te rog să nu forțezi întrebarea prin editări irelevante/minore, doar pentru a o menține în coadă.

Nicolai Grossherr Nicolai Grossherr
22 mar. 2014 23:17:40

Îmi cer scuze, modul în care a fost formulat m-a făcut să cred că era vorba mai mult despre cum am formulat întrebarea. Poți să-mi spui dacă această întrebare va fi ștearsă? Cred că ar trebui, având în vedere că nu duce nicăieri și răspunsurile sunt înșelătoare față de soluția reală. Mulțumesc că mi-ai explicat despre întrebare. Acum am înțeles.

JohnLion JohnLion
22 mar. 2014 23:39:38

Întotdeauna poți să-ți ștergi singur întrebările. Nu sunt 100% sigur cum se procedează dacă întrebarea rămâne, dar este suspendată - cred că dacă există răspunsuri, va rămâne cel puțin o vreme. Dar, deși nu am testat, sunt destul de sigur că primul meu răspuns este o soluție suficientă pentru această problemă. Apropo, am actualizat răspunsul meu cu informații pentru tine despre cum să o faci mai specific pentru WooCommerce.

Nicolai Grossherr Nicolai Grossherr
22 mar. 2014 23:47:04

Apropo, îmi cer scuze dacă te-am acuzat pe nedrept acolo.

Nicolai Grossherr Nicolai Grossherr
22 mar. 2014 23:59:12

Excelent @ialocin, mulțumesc că ți-ai luat timp să faci asta. Am descoperit că pagina de categorie de produs era gestionată în taxonomy-product_cat.php. Practic, apelează șablonul archive-product.php. Așa că am modificat acest lucru pentru a încărca propriul meu șablon. A fost unul dintre singurele fișiere pe care nu le-am deschis. Sunt de acord că soluția pe care ai oferit-o este o metodă perfectă pentru a face ceea ce doream și cu siguranță mă va ajuta în viitor. Pe lângă asta, a fost și o introducere în template_include. Fără resentimente deloc. Încă învăț cum să folosesc corect forumul și să fac parte din comunitatea WordPress. Noroc!

JohnLion JohnLion
24 mar. 2014 01:43:50

Aceasta este o întrebare despre WordPress care se aplică și plugin-urilor WP. Răspunsul este cod WordPress. Există răspunsuri mai bune despre WordPress acolo, dar pentru că a fost închisă, comunitatea nu poate adăuga la ea. Ce s-a câștigat prin închiderea ei?

Jon Jon
5 iun. 2015 11:46:42

Această politică off-topic este foarte enervantă și sincer, stupidă. WordPress este o platformă open-source - există mulți oameni care lucrează cu WooCommerce. Când vrem să-l modificăm, să-l spargem, să-l alterăm, StackExchange ar trebui să fie acolo să ne ajute.

Dave Hilditch Dave Hilditch
9 sept. 2015 19:20:18
Arată celelalte 4 comentarii
Toate răspunsurile la întrebare 1
3

Î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.

22 mar. 2014 18:26:46
Comentarii

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

JohnLion JohnLion
22 mar. 2014 19:27:05

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!!!«

Nicolai Grossherr Nicolai Grossherr
11 iun. 2014 23:08:51

@RobertWilkins Mulțumesc pentru asta, dar aceasta nu este o soluție viabilă pentru o editare, așa că am adăugat-o pentru tine ca un comentariu.

Nicolai Grossherr Nicolai Grossherr
11 iun. 2014 23:17:29