Não consegui encontrar o caminho certo para obter a lista de todos os produtos para um determinado ID de categoria (não o nome da categoria).
O código que estou usando para obter a lista de categorias é o seguinte, funciona bem:
$args = array(
'orderby' => $orderby,
'order' => $order,
'hide_empty' => 0,
'include' => $ids,
'parent' => 0,
);
$categories = get_terms( 'product_cat', $args );
No entanto, agora para um determinado ID de categoria (por exemplo, 47), não consegui encontrar o caminho para obter seus produtos relevantes. Eu tentei da seguinte maneira:
$args = array(
'posts_per_page' => 5,
'offset'=> 1,
'category' => 47
);
$products = get_posts( $args );
echo var_dump($products);
A depuração da $products
matriz sempre retorna 0, o que está errado, pois sei que existem alguns produtos na categoria com o ID 47. Alguma idéia de como corrigir meu código?
woocommerce
Malloc
fonte
fonte
category
ouproduct_category
?Respostas:
Eu suspeito que o principal problema é que você deveria estar usando o
WP_Query
objeto em vez deget_posts()
. O posterior, por padrão, retorna apenas itens com um post_type depost
não produtos,Portanto, dada uma categoria com ID 26, o código a seguir retornaria seus produtos (WooCommerce 3+):
Nas versões anteriores do WooCommerce, a visibilidade era armazenada como um meta campo, portanto o código seria:
Aqui estamos devolvendo apenas produtos visíveis, 12 por página.
Dê uma olhada em http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters para obter mais detalhes sobre como a segmentação por categoria funciona - geralmente é mais útil recuperá-la por lesma do que por ID!
fonte
get_posts()
está errada. Você pode substituirnew WP_Query($args)
porget_posts($args)
no seu código e ele funcionará.alterar categoria (categoria-nome-da-lesma) pelo ID ou nome ou lesma
fonte
Um pouco tarde, mas gostaria de esclarecer as coisas e fornecer uma resposta mais limpa. O usuário @ benz001 deu uma possível resposta válida, mas disse algo errado:
get_posts
retorna qualquer tipo deposts
post-type, por padrão, pós-type, exatamente comoWP_Query
. As reais diferenças entre os dois são maravilhosamente explicadas AQUI .O fato é que o OP simplesmente estava perdendo alguns parâmetros na
$args
matriz:A definição do pós-tipo que ele está procurando:
E a modificação da "parte da taxonomia" da consulta de pesquisa:
Desta forma, suas próximas linhas
Irá mostrar-lhe os produtos necessários :)
Como todos os outros parâmetros adicionais mostrados por @ benz001 são válidos, mas não solicitados pelo OP, decidi deixá-los para trás nesta resposta.
fonte
fonte