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 $products
matriz 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
category
oproduct_category
?Respuestas:
Sospecho que el problema principal es que debería usar el
WP_Query
objeto en lugar de hacerloget_posts()
. La última opción por defecto solo devuelve elementos con un post_type depost
no 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_posts
devuelve cualquier tipo deposts
post-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
$args
matriz: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