Pagina de magazin WooCommerce să folosească șablonul meu personalizat
Înainte de a pune întrebarea vreau să menționez că am mai pus această întrebare pe https://stackoverflow.com/questions/15025213/wordpress-woocommerce-template-file-overiding
Folosesc plugin-ul WooCommerce pentru a dezvolta un site web. Totul funcționează bine cu WooCommerce. Conform cerințelor mele, mi-am configurat pagina principală ca pagină de bază pentru magazin din panoul de administrare WooCommerce pentru a face din pagina mea principală pagina magazinului. Acum cerința mea este să plasez niște imagini care ar trebui încărcate din zona de administrare și să afișez text peste imagini. Pentru această funcționalitate, am căutat pe Google și unii oameni au sugerat să folosesc WordPress Advanced Custom Fields. L-am instalat.
Acum am observat că WooCommerce nu folosește tema mea personalizată. Folosește propria sa temă personalizată. Deoarece vreau să afișez imagini și text folosind plugin-ul Advanced Custom Fields, am nevoie de propriul șablon personalizat pentru a utiliza interogările pentru imagini și text. Apoi am căutat din nou pe Google o soluție și am primit sugestia să fac doar o copie a fișierului page.php
al temei în woocommerce.php
și apoi să înlocuiesc codul:
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php comments_template( '', true ); ?>
<?php endwhile; // sfârșitul buclei ?>
cu
<?php woocommerce_content(); ?>
Am făcut asta dar tot nu obțin câmpurile personalizate din Advanced Custom Fields. Vă rog să mă ajutați. Orice sugestii și ajutor vor fi apreciate. Mulțumesc.
Codul meu pentru afișarea Advanced Custom Fields pentru imagine și text este următorul:
<?php $product_tab_banner = get_field('product_tab_banner');
if($product_tab_banner): ?>
<?php var_dump($product_tab_banner); ?>
<div class="nt-highlighted-products">
<img src="<?php echo $product_tab_banner['url']; ?>" alt="<?php echo $product_tab_banner['alt']; ?>" width="<?php echo $product_tab_banner['sizes']['featured_product-width'];?>" height="<?php echo $product_tab_banner['sizes']['featured_product-height'];?>" title="<?php echo $product_tab_banner['title']; ?>" />
</div>
<?php endif; ?>
Folosesc tema WordPress TwentyEleven.
Nu sunt complet sigur că înțeleg corect problema ta, dar iată încercarea mea de a o replica.
În primul rând, ia în considerare această parte din documentația WooCommerce:
Dacă dorești să editezi unul dintre aceste șabloane, pur și simplu copiază-l într-un director în tema ta numit
/woocommerce
, păstrând aceeași structură de fișiere, de exemplu mută/templates/cart/cart.php
înnumele-temei/woocommerce/cart/cart.php
. Fișierul copiat va suprascrie acum fișierul șablon implicit WooCommerce.
În al doilea rând, iată pașii de replicare:
- Folosind WP 3.5.1, TwentyEleven 1.5, WooCommerce 1.6.6 și AdvancedCustomFields 4.0.0
- Setează pagina "Magazin" ca pagină frontală statică în Setări de Citire (
/wp-admin/options-reading.php
) - Setează un Grup de Câmpuri ACF care conține un Câmp Imagine (
product_tab_banner
), cu Valoare de Returnare ca "Obiect Imagine" și să fie afișat în tipul de postare "Produs"
Soluție:
- Crează următorul folder:
/wp-content/twentyeleven/woocommerce/
- Copiază fișierul:
/wp-content/plugins/woocommerce/templates/content-product.php
în acest folder nou creat - Plasează codul tău în această copie a
content-product.php
$product_tab_banner = get_field('product_tab_banner');
if($product_tab_banner): ?>
<div class="nt-highlighted-products">
<img src="<?php echo $product_tab_banner['url']; ?>"
alt="<?php echo $product_tab_banner['alt']; ?>"
width="<?php echo $product_tab_banner['sizes']['featured_product-width'];?>"
height="<?php echo $product_tab_banner['sizes']['featured_product-height'];?>"
title="<?php echo $product_tab_banner['title']; ?>" />
</div>
<?php endif; ?>
Iată pagina produsului:
click pentru a mări ⤴
Și iată rezultatul pe site:
Dacă dorești să personalizezi pagina "Magazin", copiază fișierul /wp-content/plugins/woocommerce/templates/archive-product.php
în folderul /woocommerce/
al temei tale.

Analizând întrebarea ta, vreau să îți spun că WooCommerce nu va folosi șablonul tău personalizat. Acesta va folosi propriul șablon.
Deoarece dorești să utilizezi plugin-ul WordPress Advanced Custom Fields, trebuie să știi că această funcționalitate funcționează doar pe pagini și articole. Deci, întrucât WooCommerce nu permite utilizarea unui șablon personalizat, nu poți folosi funcțiile Advanced Custom Fields.
Acum, poți încerca o altă abordare. Creează propriul tău șablon personalizat în care dorești să afișezi produsele. Apoi, accesează site-ul http://docs.woothemes.com/document/woocommerce-shortcodes/
Aici poți vedea shortcode-urile disponibile pentru WooCommerce. Acestea îți permit să afișezi aproape toate produsele cu propriile personalizări. Folosește aceste shortcode-uri pentru a afișa produsele. În acest fel, ai obținut ca WooCommerce să folosească propriul tău șablon personalizat. Acum, deoarece este șablonul tău, poți utiliza cu ușurință Advanced Custom Fields. E clar? Dacă ceva nu este clar, răspunde-mi. Sper că acest lucru te va ajuta.

Vă rugăm să încercați să înlocuiți plugin-ul pe care îl utilizați cu extensiile oficiale WooCommerce, cum ar fi "Product Add-ons" (http://www.woothemes.com/products/product-add-ons/).
