WooCommerce: Cambiar plantilla para página de producto individual

3 jun 2015, 14:47:55
Vistas: 122K
Votos: 8

Sé que existe la posibilidad de cambiar la estructura/diseño de la página de producto editando el archivo single-product.php - en un tema hijo.

Los cambios realizados en ese archivo afectarán a todas las páginas de productos.

Pero, ¿cómo cambio el archivo de plantilla para páginas de productos específicas? ¿Como puedo hacerlo con una plantilla de página personalizada? Por defecto no hay un desplegable de plantillas en una página de producto individual como sí existe para una página (la imagen).

¿Cómo cambio la plantilla de una página de producto específica?

Selector de plantilla de página en WordPress

2
Comentarios

Ese menú desplegable que ves en la pantalla de edición solo está disponible para páginas. Posible pregunta duplicada: 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 jun 2015 15:44:24
Todas las respuestas a la pregunta 2
1

Woo Commerce está fuera de tema ya que es un plugin y no está específicamente relacionado con WordPress, pero lo que puedes hacer es copiar la plantilla single-product.php a una carpeta WooCommerce en tu tema hijo. Cambia el nombre del archivo y modifícalo, luego usa single_template o template_include con la etiqueta condicional correcta.

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 jun 2015 18:07:28
Comentarios

Ninguna de estas respuestas aborda completamente la pregunta, que era "¿cómo cambio el archivo de plantilla para páginas de productos específicos?"

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

Necesitas revisar la jerarquía de plantillas de WordPress para entender cómo funciona.

Entrada individual #

El archivo de plantilla de entrada individual se utiliza para mostrar una sola entrada. WordPress utiliza la siguiente ruta:

1. single-{post-type}.php – Primero, WordPress busca una plantilla para el tipo de entrada específico. Por ejemplo, si el tipo de entrada es producto, WordPress buscaría single-product.php.
2. single.php – Si no existe, WordPress recurre a single.php.
3. index.php – Finalmente, como se mencionó anteriormente, WordPress termina recurriendo a index.php.

Página #

El archivo de plantilla utilizado para mostrar una página estática (tipo de entrada page). Ten en cuenta que, a diferencia de otros tipos de entradas, page es especial en WordPress y utiliza la siguiente ruta:

   1. archivo de plantilla personalizado – La plantilla de página asignada a la página. Ver get_page_templates().
   2. page-{slug}.php – Si el slug de la página es noticias-recientes, WordPress buscará usar page-noticias-recientes.php.
   3. page-{id}.php – Si el ID de la página es 6, WordPress buscará usar page-6.php.
   4. page.php
   5. index.php

Para un ID específico puedes usar la plantilla page-{id}.php.

3 jun 2015 15:57:46