wc_get_products the tag start query name loop all php wordpress woocommerce

php - the - woocommerce loop start



Woocommerce obtener productos (3)

No use WP_Query() o get_posts() . Del documento de WooCommerce:

wc_get_products y WC_Product_Query proporcionan una forma estándar de recuperar productos que son seguros de usar y que no se romperán debido a cambios en la base de datos en versiones futuras de WooCommerce. Es probable que la creación de WP_Queries o consultas de bases de datos clasifiquen su código en futuras versiones de WooCommerce a medida que los datos se muevan hacia tablas personalizadas para un mejor rendimiento.

Puede recuperar los productos que desea de esta manera:

$args = array( ''category'' => array( 34 ), ''orderby'' => ''name'', ); $products = wc_get_products( $args );

Documentación de WooCommerce

Utilicé el siguiente código para obtener la lista de categorías de productos de WooCommerce en mi sitio web de WordPress:

<?php $taxonomy = ''product_cat''; $orderby = ''name''; $show_count = 0; // 1 for yes, 0 for no $pad_counts = 0; // 1 for yes, 0 for no $hierarchical = 0; // 1 for yes, 0 for no $title = ''''; $empty = 0; $args = array( ''taxonomy'' => $taxonomy, ''orderby'' => $orderby, ''show_count'' => $show_count, ''pad_counts'' => $pad_counts, ''hierarchical'' => $hierarchical, ''title_li'' => $title, ''hide_empty'' => $empty ); ?> <?php $all_categories = get_categories( $args ); //print_r($all_categories); foreach ($all_categories as $cat) { //print_r($cat); if($cat->category_parent == 0) { $category_id = $cat->term_id; ?> <?php echo ''<br /><a href="''. get_term_link($cat->slug, ''product_cat'') .''">''. $cat->name .''</a>''; ?> <?php $args2 = array( ''taxonomy'' => $taxonomy, ''child_of'' => 0, ''parent'' => $category_id, ''orderby'' => $orderby, ''show_count'' => $show_count, ''pad_counts'' => $pad_counts, ''hierarchical'' => $hierarchical, ''title_li'' => $title, ''hide_empty'' => $empty ); $sub_cats = get_categories( $args2 ); if($sub_cats) { foreach($sub_cats as $sub_category) { echo $sub_category->name ; } } ?> <?php } } ?>

Esto funciona bien y devuelve la lista de categorías de productos. He intentado ahora obtener una lista de productos para una categoría en particular.

Ejemplo : obtener todos los productos para con cat_id=34 .

Sé que los productos se almacenan como publicaciones y han estado tratando de hacerlo, pero parece que no.

¿Cómo obtengo la lista de productos para una categoría en particular?


<?php $args = array( ''post_type'' => ''product'', ''category'' => 34, ''posts_per_page'' => -1 ); $products = get_posts( $args ); ?>

Esto debería atrapar todos los productos que desee, es posible que el tipo de publicación sea incorrecto, aunque no puedo recordar exactamente qué usa woo-commerce para el tipo de publicación. Devolverá una variedad de productos


<?php $args = array( ''post_type'' => ''product'', ''posts_per_page'' => 10, ''product_cat'' => ''hoodies'' ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); global $product; echo ''<br /><a href="''.get_permalink().''">'' . woocommerce_get_product_thumbnail().'' ''.get_the_title().''</a>''; endwhile; wp_reset_query(); ?>

Esto mostrará una lista de todas las miniaturas y nombres de los productos junto con sus enlaces a la página del producto. cambie el nombre de la categoría y posts_per_page según su requisito.