WooCommerce: Cambiare il template per la pagina del singolo prodotto

3 giu 2015, 14:47:55
Visualizzazioni: 122K
Voti: 8

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?

Menu a tendina per la selezione del template della pagina in WordPress

2
Commenti

Il menu a discesa che vedi nella schermata di modifica della pagina è disponibile solo per le pagine. Possibile domanda duplicata: https://wordpress.stackexchange.com/questions/35221/how-to-get-template-drop-down-menu-in-page-attributes-of-custom-post-type https://stackoverflow.com/questions/5652817/select-template-menu-for-custom-post-types

Jan Beck Jan Beck
3 giu 2015 15:44:24
Tutte le risposte alla domanda 2
1

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;
}
3 giu 2015 18:07:28
Commenti

Nessuna di queste risposte soddisfa completamente la domanda, che era "come posso cambiare il file template per pagine prodotto specifiche?"

Chris J Allen Chris J Allen
8 nov 2018 11:38:16
0

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.

3 giu 2015 15:57:46