WooCommerce: Cambiare il template per la pagina del singolo prodotto
So che esiste la possibilità di modificare la struttura/design della pagina del prodotto modificando il file single-product.php
- in un tema child.
Le modifiche apportate a quel file influenzeranno tutte le pagine dei prodotti.
Ma come posso cambiare il file template per pagine di prodotti specifici? Come posso fare con un template di pagina personalizzato? Di default non c'è un menu a tendina per il template nella pagina del singolo prodotto come c'è per una pagina (l'immagine).
Come posso cambiare il template di una specifica pagina prodotto?

WooCommerce è fuori tema in quanto è un plugin e non è specificamente correlato a WordPress, ma quello che puoi fare è copiare il template single-product.php in una cartella WooCommerce del tuo child theme. Cambia il nome del file e modificalo, quindi utilizza single_template
o template_include
con il tag condizionale corretto.
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;
}

Devi verificare la gerarchia dei template di WordPress per capire come funziona.
Singolo Articolo #
Il file template del singolo articolo viene utilizzato per visualizzare un singolo post. WordPress utilizza il seguente percorso:
1.single-{post-type}.php – Per prima cosa, WordPress cerca un template per il tipo di post specifico. Ad esempio, se il tipo di post è product, WordPress cercherebbe single-product.php.
2.single.php – WordPress poi ripiega su single.php.
3.index.php – Infine, come menzionato sopra, WordPress alla fine ripiega su index.php.
Pagina #
Il file template utilizzato per visualizzare una pagina statica (tipo di post page). Nota che, a differenza di altri tipi di post, page è speciale per WordPress e utilizza il seguente percorso:
1. file template personalizzato – Il template della pagina assegnato alla pagina. Vedi get_page_templates().
2. page-{slug}.php – Se lo slug della pagina è recent-news, WordPress cercherà di utilizzare page-recent-news.php.
3.page-{id}.php – Se l'ID della pagina è 6, WordPress cercherà di utilizzare page-6.php.
4. page.php
5. index.php
Per un ID specifico puoi utilizzare il template page-{id}.php
.
