WooCommerce: Schimbarea șablonului pentru pagina unui produs
Știu că există posibilitatea de a modifica structura/designul paginii produsului prin editarea fișierului single-product.php
- într-o temă copil.
Modificările făcute în acel fișier vor afecta toate paginile de produse.
Dar cum pot schimba fișierul șablon pentru pagini specifice de produse? Așa cum pot face cu un șablon personalizat de pagină? În mod implicit nu există o listă derulantă pentru șabloane pe o pagină de produs individuală așa cum există pentru o pagină obișnuită (vezi imaginea).
Cum pot schimba șablonul unei pagini specifice de produs?

Woo Commerce este în afara subiectului deoarece este un plugin și nu este specific legat de WordPress, dar ceea ce poți face este să copiezi șablonul single-product.php într-un folder WooCommerce în tema ta child. Schimbă numele fișierului și modifică-l, apoi folosește single_template
sau template_include
cu condiționalul corespunzător.
single_template
function get_custom_post_type_template($single_template) {
global $post;
if ($post->post_type == 'product') {
$single_template = dirname( __FILE__ ) . '/single-template.php';
}
return $single_template;
}
add_filter( 'single_template', 'get_custom_post_type_template' );
template_include
add_filter( 'template_include', 'portfolio_page_template', 99 );
function portfolio_page_template( $template ) {
if ( is_page( 'slug' ) ) {
$new_template = locate_template( array( 'single-template.php' ) );
if ( '' != $new_template ) {
return $new_template ;
}
}
return $template;
}

Trebuie să verifici iераrhia de șabloane în WordPress pentru a înțelege cum funcționează.
Articol Single #
Fișierul șablon pentru articole single este folosit pentru a afișa un singur articol. WordPress folosește următoarea ierarhie:
1. single-{post-type}.php – În primul rând, WordPress caută un șablon specific pentru tipul de postare. De exemplu, dacă tipul de postare este product, WordPress va căuta single-product.php.
2. single.php – Dacă nu găsește, WordPress va reveni la single.php.
3. index.php – În final, dacă niciunul nu există, WordPress va folosi index.php.
Pagină #
Fișierul șablon folosit pentru a afișa o pagină statică (tipul de postare page). Rețineți că, spre deosebire de alte tipuri de postări, page este special pentru WordPress și folosește următoarea ierarhie:
1. fișier șablon personalizat – Șablonul de pagină atribuit paginii. Vezi get_page_templates().
2. page-{slug}.php – Dacă slug-ul paginii este recent-news, WordPress va încerca să folosească page-recent-news.php.
3. page-{id}.php – Dacă ID-ul paginii este 6, WordPress va căuta page-6.php.
4. page.php
5. index.php
Pentru un ID specific poți folosi șablonul page-{id}.php
.
