WooCommerce: Cambiar plantilla para página de producto individual
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?

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;
}

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
.
