Mostrar un Producto Individual de WooCommerce en la Página de Inicio

3 dic 2013, 17:55:35
Vistas: 32.2K
Votos: 0

Actualmente estoy aprendiendo PHP y cómo personalizar WordPress.

He configurado una tienda en WordPress usando el plugin WooCommerce. La tienda tiene solo un único producto. Como solo tengo 1 artículo para vender, me gustaría mostrar el producto en mi página de inicio de tal manera que la página completa del producto se muestre en la página principal.

Aquí hay algo de código que he estado intentando hacer funcionar (esto está ubicado en el archivo home.php):

$prodpage = array(
'post_type' => 'product',
'posts_per_page' => 1,
'taxonomy' => 'banner',
'term' => 'banner'
);
$featured_query = new WP_Query( $prodpage );

if ($featured_query->have_posts()) :   

    while ($featured_query->have_posts()) :   

        $featured_query->the_post();  

        $product = get_product( $featured_query->product->ID );  

    // Aquí va la salida de la información del producto

endwhile;  

endif;  

wp_reset_query(); // Reiniciar la consulta

También he intentado usar query_posts de esta manera:

if ( is_home() ) {
query_posts( 'p=31' );
}

La buena noticia es que no recibo errores de sintaxis. La mala noticia es que temo que mi lógica está mal en alguna parte ya que obtengo una página que solo muestra el encabezado y pie de página de WordPress. La sección central donde debería aparecer el producto no se muestra.

¡Realmente aprecio cualquier orientación que puedan darme! :)

5
Comentarios

Reemplaza las comillas rizadas en ‘banner’ y otras apariciones con comillas simples '.

fuxia fuxia
3 dic 2013 21:06:14

¡¡Gracias por detectar eso!! Eliminé las comillas rizadas como indicaste. Lamentablemente, eso no hizo que la información apareciera. :(

Miss_Scarlett80 Miss_Scarlett80
3 dic 2013 21:45:49

Siguiente paso: Lee este hilo.

fuxia fuxia
3 dic 2013 21:47:40

'term' no existe como parámetro para WP_Query, debería ser 'terms'. Además, debería ser parte de un 'tax_query'; el parámetro 'taxonomy' también. Pero como solo tienes y quieres un producto, no tiene sentido usarlo, no lo necesitas.

Nicolai Grossherr Nicolai Grossherr
3 dic 2013 22:42:59

¡Gracias a ambos! Estoy leyendo sobre consultas ahora. ¡Excelente información en el artículo que publicaste, toscho! Estaba yendo de un lado a otro entre el Codex de WordPress y el manual de PHP pero no estaba 100% seguro de mi comprensión. ¡El enlace que publicaste ayudó a llenar ese vacío! ¡Gracias!

Miss_Scarlett80 Miss_Scarlett80
3 dic 2013 23:05:46
Todas las respuestas a la pregunta 1
3

¿Por qué no simplemente usar el shortcode product_page?

En el contenido de la página:

[product_page id="31"]

En el código de la plantilla de la página de inicio:

<?php echo do_shortcode('[product_page id="31"]'); ?>
3 dic 2013 22:44:45
Comentarios

¡Guau! ¡Gracias! Encontré ese método en mi búsqueda pero pensé (léase asumí) que solo mostraría la miniatura y el botón de añadir al carrito. Sí... las suposiciones. Vaya. De nuevo, ¡gracias! :)

Miss_Scarlett80 Miss_Scarlett80
3 dic 2013 22:50:57

el shortcode [product] hace eso :)

webaware webaware
3 dic 2013 22:52:15

Lo intenté pero solo mostraba la miniatura y un botón de añadir al carrito. El fragmento de código que proporcionaste para el shortcode manual realmente mostraba la página completa del producto. Me pregunto si todo lo que necesitaba era poner [product_page id="31"] en mi publicación de Wordpress. ¿Hubiera aparecido entonces la página completa? ¡A probar!

Miss_Scarlett80 Miss_Scarlett80
3 dic 2013 23:06:53