¿Cómo mostrar productos específicos de una categoría con el plugin WooCommerce?

5 oct 2012, 15:23:41
Vistas: 193K
Votos: 16

Estoy usando el plugin WooCommerce para hacer una tienda en línea.

Tengo muchas categorías, por ejemplo shoes, clothes y así sucesivamente. ¿Cómo puedo mostrar los productos de una categoría específica?

Veo estos bucles de productos en la página de ejemplo, pero solo quiero mostrar los productos de una categoría específica en mi index.php.

1
Comentarios

¿Puedes decirme dónde agregar este código, por favor?

Alaa M. Jaddou Alaa M. Jaddou
20 ene 2017 21:49:56
Todas las respuestas a la pregunta 3
8
29

Necesitas crear un nuevo bucle para eso. Aquí está el código que uso para mostrar productos de una categoría específica en la página de inicio:

<ul class="products">
    <?php
        $args = array( 'post_type' => 'product', 'posts_per_page' => 1, 'product_cat' => 'shoes', 'orderby' => 'rand' );
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>

            <h2>Zapatos</h2>

                <li class="product">    

                    <a href="<?php echo get_permalink( $loop->post->ID ) ?>" title="<?php echo esc_attr($loop->post->post_title ? $loop->post->post_title : $loop->post->ID); ?>">

                        <?php woocommerce_show_product_sale_flash( $post, $product ); ?>

                        <?php if (has_post_thumbnail( $loop->post->ID )) echo get_the_post_thumbnail($loop->post->ID, 'shop_catalog'); else echo '<img src="'.woocommerce_placeholder_img_src().'" alt="Imagen de marcador de posición" width="300px" height="300px" />'; ?>

                        <h3><?php the_title(); ?></h3>

                        <span class="price"><?php echo $product->get_price_html(); ?></span>                    

                    </a>

                    <?php woocommerce_template_loop_add_to_cart( $loop->post, $product ); ?>

                </li>

    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
</ul><!--/.products-->
5 oct 2012 18:07:02
Comentarios

@VanTong Entonces marca esta respuesta como la respuesta: haz clic en la marca de verificación en el lado izquierdo.

fuxia fuxia
7 oct 2012 07:37:00

Hola Dwaser, quiero preguntar más. Si en la página de archivo, quiero mostrar todos los productos nuevos. Y cuando elija una categoría específica, mostrará los productos de esa categoría. Por ejemplo, tengo 2 categorías: Categoría A y Categoría B. Cuando elija A, mostrará los productos de A, y cuando elija B, mostrará los productos de B. Por favor, dime los bucles. Gracias.

Van Tong Van Tong
26 oct 2012 15:22:20

¿cómo mostrar un mensaje si no hay productos?

Muhammad Bilal Muhammad Bilal
6 feb 2014 01:42:27

@dwaser Hola, ¿el argumento product_cat acepta un ID de categoría como entero, por ejemplo: 40 en lugar de 'zapatos'? Si no es así, ¿cómo hacer que acepte un ID de categoría como entero? Gracias.

Malloc Malloc
6 may 2014 21:15:51

@dwaser Parece que la función woocommerce_placeholder_img_src() está obsoleta ahora. ¿Sería get_image() el equivalente? http://docs.woothemes.com/wc-apidocs/source-class-WC_Product.html#1473-1489. Además, ¿por qué verificas primero si hay un thumbnail del post?

codecowboy codecowboy
9 jun 2015 14:34:03

Disculpen chicos, ¿pero dónde se agrega este código? Soy nuevo en WordPress pero tengo un plazo muy ajustado. @VanTong

Alaa M. Jaddou Alaa M. Jaddou
20 ene 2017 21:21:15

También me pregunto sobre el contexto de este código. ¿Dónde colocarlo?

c0dehunter c0dehunter
15 feb 2018 11:02:31

1 año tarde, pero deberías poner esto en tu plantilla. wp-content/tutema/nombre-de-la-plantilla.php

Bwrites Bwrites
16 oct 2019 06:47:48
Mostrar los 3 comentarios restantes
1

Prueba esto

<?php
    echo $product->get_categories(
        ', ',
        '<span class="posted_in">' . _n( 'Categoría:', 'Categorías:',
        sizeof( get_the_terms( $post->ID, 'product_cat' ) ),
        'woocommerce' ) . ' ',
        '.</span>'
    );
?>
17 sept 2013 10:41:28
Comentarios

¿Puedes elaborar sobre cómo y por qué esto resolvería el problema del OP?

Johannes Pille Johannes Pille
17 sept 2013 11:38:37
2

Existe otra manera:

Puedes asignar la página "Tienda" como página de inicio predeterminada. Ahora todos los productos se mostrarán en la página principal. Me refiero a index.php.

14 mar 2014 12:39:55
Comentarios

¿la pregunta era sobre productos de una categoría específica?

Jon Jon
20 oct 2020 15:44:32

Por favor elimina esta respuesta, ya que no tiene nada que ver con la pregunta.

clayRay clayRay
12 feb 2021 05:46:46