Afișare incorectă a barei laterale pe pagina de magazin WooCommerce
Dezvolt o reîmprospătare a site-ului meu pe un nou plan VPS și una dintre principalele modificări este trecerea de la wp e-commerce la WooCommerce.
URL-ul către pagina magazinului WooCommerce este http://95.142.166.209/shop/
[Accesez site-ul prin adresa IP VPS deocamdată, deoarece domeniul meu este folosit pentru site-ul live - StackExchange nu permite URL-uri IP, așa că va trebui să copiați-lipiți IP-ul în bara de adrese (îmi cer scuze)]
Sunt încă în proces de stilizare și creare de șabloane, dar nu reușesc să rezolv problema barei laterale. Tema mea WordPress are 2 bare laterale definite în functions.php: blog sidebar
și shop sidebar
. Din anumite motive, singura bară laterală pe care o pot afișa pe pagina magazinului este bara laterală pentru blog, care ar trebui să apară (surprinzător) doar pe blog.
Am încercat să creez un șablon pentru magazin și am inserat funcția get_sidebar()
, făcând referire la ID-ul barei laterale pentru magazin în proces, dar fără succes.
Cred că WooCommerce ar trebui să își înregistreze propria bară laterală la instalare, dar nu există niciun semn al acesteia în backend-ul WordPress sub appearance->widgets.
Am parcurs fișierele temei WooCommerce, dar singurul lucru legat de bara laterală pe care îl pot găsi este un fișier php care conține get_sidebar('shop')
, care este evident inclus de alte fișiere ale temei. Nu există niciun semn al înregistrării unei bare laterale cu ID-ul 'shop' nicăieri.
Are cineva idee cum pot afișa bara laterală corectă pe paginile magazinului? Mulțumesc
Observ că întrebarea mea a primit câteva voturi negative - îmi cer scuze dacă nu este clară, dar este o întrebare genuină. Dacă ceva necesită clarificări, ar fi de ajutor să lăsați un comentariu în loc să dați doar vot negativ.

WooCommerce are un plugin pentru bare laterale: http://www.woothemes.com/woosidebars/
Acesta vă oferă un control cuprinzător - puteți crea noi zone de bare laterale pentru orice pagini doriți.

Aceasta ar putea fi o opțiune, dar aș prefera să evit instalarea de plugin-uri suplimentare atunci când pot obține rezultatul dorit direct în tema mea. Vreau doar să înțeleg de ce nu reușesc să afișez bara laterală a doua a magazinului. WooCommerce utilizează întotdeauna șablonul index.php sau paginile WC respectă șabloanele care li se atribuie?

WooCommerce va căuta în mod implicit în directorul temei tale un șablon de pagină numit woocommerce.php
și, dacă acesta există, îl va folosi pentru a afișa o pagină. În acest fel, poți suprascrie pagina implicită WooCommerce într-un mod sigur la actualizări.
Cea mai simplă metodă de a implementa acest lucru este să copiezi fișierul tău page.php sau single.php în woocommerce.php (în același director), apoi să editezi fișierul pentru a înlocui zona de conținut cu un apel către WooCommerce.
<?php woocommerce_content(); ?>
Acest lucru îți oferă, precum și temei, un control aproape complet asupra aspectului și barelor laterale.
Aruncă o privire la acest articol despre tematizarea WooCommerce, sperăm că îți va fi de ajutor.

ÎN SFÂRȘIT!! Am găsit un răspuns la o problemă similară cu care mă confruntam în tema Customizr. Vezi aici.
Pe scurt, poți crea cu ușurință un sidebar personalizat, care poate fi editat în Aspect > Widget-uri și va apărea doar pe paginile magazinului tău.
Notă: Când urmezi exemplul din acest link, asigură-te că adaugi <?php
la începutul codului care alcătuiește fișierul sidebar-shop.php
.
Sper că te va ajuta la fel de mult pe cât m-a ajutat pe mine.

Primul pas
Copiază fișierele de șablon WooCommerce din plugin-ul tău în folderul temei tale (detalii despre cum să suprascrii tema implicită http://docs.woothemes.com/document/template-structure/)
Al doilea pas
Crează un fișier sidebar-shop.php în folderul temei tale
Al treilea pas
Adaugă ceva text sau afișează un șir de caractere în interiorul fișierului sidebar-shop.php.
Al patrulea pas
Reîmprospătează site-ul și vei vedea că șirul de text implicit începe să se afișeze în locul conținutului implicit al blogului
Poți personaliza ulterior bara laterală după preferințele tale (detalii http://codex.wordpress.org/Function_Reference/register_sidebar)
În zona de widget-uri, adaugă productcategory în bara laterală definită Acum în bara laterală vei vedea categoriile de produse în locul conținutului implicit al blogului

Folosesc tema inove și consecințele sunt "woocommerce plasează bara laterală în subsol sau dedesubt" și nu poți dezactiva bara laterală în consola de administrare pentru Magazin sau Produse, celelalte sunt disponibile în secțiunea de pagini, doar alegeți șablonul fără bară laterală.
Ce a trebuit să fac pentru a rezolva această problemă este incredibil de consumator de timp, posibil distructiv pentru întregul site și nimic nu a părut să funcționeze timp de 3 zile.
Am modificat single-product.php, archive-product.php în Plugin>Woocommerce>Templates, acest lucru a avut un efect asupra barei laterale, dar tot nu era corect.
Acesta este lucrul tipic pe care l-am făcut cu fișierele, am comentat codul @hooked…. pentru bara laterală astfel:
/**
* woocommerce_sidebar hook
* do_action( 'woocommerce_sidebar' );
* @hooked woocommerce_get_sidebar - 10
*/
Am încercat și modificări pe woocommerce.php și am editat style.css și multe altele în consola de administrare Aspect>editor, dar am șters toate aceste modificări deoarece nu au funcționat.
În pagini, am selectat Coș, Cont, Magazin și în Atributele paginii din partea dreaptă am făcut toate paginile Părinte este Magazin și am folosit șablonul implicit.
Fișierul final editat wc-template-hooks.php a rezolvat problema, acesta se află în folderul Plugin>Woocommerce>Includes. Nu sunt sigur dacă doar editarea acestui fișier va rezolva totul.
/**
* Sidebar
*
* @see woocommerce_get_sidebar()
* add_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10 );
*/
Bara laterală este acum unde ar trebui să fie și este rezolvată pentru mine, mulțumesc tuturor celorlalți contribuitori ale căror soluții au funcționat pentru versiunile anterioare. Rulez totul la zi, iunie 2014.
Noroc, mă duc să mă uit la fotbal și să beau câteva beri.
