Nie mogłem znaleźć właściwego sposobu na uzyskanie listy wszystkich produktów dla danego identyfikatora kategorii (nie nazwy kategorii).
Kod, którego używam do uzyskania listy kategorii, jest następujący: działa dobrze:
$args = array(
'orderby' => $orderby,
'order' => $order,
'hide_empty' => 0,
'include' => $ids,
'parent' => 0,
);
$categories = get_terms( 'product_cat', $args );
Jednak teraz dla danego identyfikatora kategorii (powiedzmy 47) nie mogłem znaleźć sposobu na uzyskanie odpowiednich produktów. Próbowałem w następujący sposób:
$args = array(
'posts_per_page' => 5,
'offset'=> 1,
'category' => 47
);
$products = get_posts( $args );
echo var_dump($products);
Debugowanie $products
tablicy zawsze zwraca 0, co jest błędne, ponieważ wiem, że w tej kategorii są produkty o identyfikatorze 47. Jakieś pomysły, jak naprawić mój kod?
woocommerce
Malloc
źródło
źródło
category
czyproduct_category
?Odpowiedzi:
Podejrzewam, że głównym problemem jest to, że powinieneś używać
WP_Query
obiektu, a nieget_posts()
. Później domyślnie zwraca tylko produkty o typie post_niepost
produktów,Biorąc pod uwagę kategorię o identyfikatorze 26, poniższy kod zwróci jej produkty (WooCommerce 3+):
We wcześniejszych wersjach WooCommerce widoczność była przechowywana jako pole meta, więc kod będzie:
Tutaj zwracamy tylko widoczne produkty, 12 na stronę.
Przejrzyj http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters, aby uzyskać więcej informacji na temat działania kierowania na kategorie - często bardziej przydatne jest wyszukiwanie go według informacji o ślimaku niż według identyfikatora!
źródło
get_posts()
jest błędny. Można wymienićnew WP_Query($args)
zeget_posts($args)
w kodzie i będzie działać.źródło
zmień kategorię (kategoria-ślimak-nazwa) według identyfikatora lub imienia lub ślimaka
źródło
Trochę późno, ale chciałbym wyjaśnić i udzielić bardziej przejrzystej odpowiedzi. Użytkownik @ benz001 podał możliwą prawidłową odpowiedź, ale powiedział coś złego:
get_posts
zwraca dowolny typ post-typów, domyślnie ustawiony naposts
post-type, tak jakWP_Query
. Prawdziwe różnice między nimi są doskonale wyjaśnione TUTAJ .Faktem jest, że OP po prostu brakowało niektórych parametrów w
$args
tablicy:Definicja poszukiwanego typu posta:
I modyfikacja „części taksonomicznej” zapytania:
W ten sposób twoje następne wiersze
Pokażę potrzebne produkty :)
Wszystkie inne dodatkowe parametry pokazane przez @ benz001 są oczywiście prawidłowe, ale nie są wymagane przez OP, więc postanowiłem je pominąć w tej odpowiedzi.
źródło