No pude encontrar la forma correcta de obtener la lista de todos los productos para una ID de categoría determinada (no el nombre de la categoría).
El código que estoy usando para obtener la lista de categorías es el siguiente, funciona bien:
$args = array(
'orderby' => $orderby,
'order' => $order,
'hide_empty' => 0,
'include' => $ids,
'parent' => 0,
);
$categories = get_terms( 'product_cat', $args );
Sin embargo, ahora para una ID de categoría determinada (digamos 47), no pude encontrar la forma de obtener sus productos relevantes. Traté de la siguiente manera:
$args = array(
'posts_per_page' => 5,
'offset'=> 1,
'category' => 47
);
$products = get_posts( $args );
echo var_dump($products);
La depuración de la $productsmatriz siempre devuelve 0, lo cual es incorrecto, ya que sé que hay algunos productos en la categoría con ID 47. ¿Alguna idea de cómo solucionar mi código?
woocommerce
Malloc
fuente
fuente

categoryoproduct_category?Respuestas:
Sospecho que el problema principal es que debería usar el
WP_Queryobjeto en lugar de hacerloget_posts(). La última opción por defecto solo devuelve elementos con un post_type depostno productos,Entonces, dada una categoría con ID 26, el siguiente código devolvería sus productos (WooCommerce 3+):
En versiones anteriores de WooCommerce, la visibilidad se almacenaba como un metacampo, por lo que el código sería:
Aquí solo devolvemos productos visibles, 12 por página.
Eche un vistazo a http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters para obtener más detalles sobre cómo funciona la segmentación por categoría: ¡a menudo es más útil recuperarla por babosa que por ID!
fuente
get_posts()está mal. Puede reemplazarnew WP_Query($args)conget_posts($args)en su código y funcionará.cambie la categoría (category-slug-name) por id o name o slug
fuente
Un poco tarde, pero me gustaría aclarar las cosas y proporcionar una respuesta más limpia. El usuario @ benz001 dio una posible respuesta válida, pero dijo algo incorrecto:
get_postsdevuelve cualquier tipo depostspost-type, por defecto a post-type, al igual queWP_Query. Las diferencias reales entre los dos se explican maravillosamente AQUÍ .El hecho es que al OP simplemente le faltaban algunos parámetros en la
$argsmatriz:La definición del tipo de mensaje que está buscando:
Y la modificación de la "parte de taxonomía" de la consulta de búsqueda:
De esta manera tus siguientes líneas
Le mostrará los productos necesarios :)
Todos los demás parámetros adicionales mostrados por @ benz001 son, por supuesto, válidos pero no solicitados por el OP, por lo que decidí dejarlos atrás en esta respuesta.
fuente
fuente