Ich konnte nicht den richtigen Weg finden, um die Liste aller Produkte für eine bestimmte Kategorie-ID (nicht den Kategorienamen) zu erhalten.
Der Code, den ich verwende, um die Kategorienliste zu erhalten, ist der folgende, es funktioniert gut:
$args = array(
'orderby' => $orderby,
'order' => $order,
'hide_empty' => 0,
'include' => $ids,
'parent' => 0,
);
$categories = get_terms( 'product_cat', $args );
Für eine bestimmte Kategorie-ID (z. B. 47) konnte ich jedoch nicht den Weg finden, um die relevanten Produkte zu erhalten. Ich habe es folgendermaßen versucht:
$args = array(
'posts_per_page' => 5,
'offset'=> 1,
'category' => 47
);
$products = get_posts( $args );
echo var_dump($products);
Das Debuggen des $products
Arrays gibt immer 0 zurück, was falsch ist, da ich weiß, dass es einige Produkte unter der Kategorie mit der ID 47 gibt. Irgendwelche Ideen, wie man meinen Code repariert?
woocommerce
Malloc
quelle
quelle
category
oderproduct_category
?Antworten:
Ich vermute, das Hauptproblem ist, dass Sie das
WP_Query
Objekt eher als verwenden solltenget_posts()
. Das spätere gibt standardmäßig nur Artikel mit einem post_type vonpost
nicht Produkten zurück,Bei einer Kategorie mit der ID 26 würde der folgende Code die Produkte zurückgeben (WooCommerce 3+):
In früheren Versionen von WooCommerce wurde die Sichtbarkeit als Metafeld gespeichert, sodass der Code wie folgt lautete:
Hier geben wir nur sichtbare Produkte zurück, 12 pro Seite.
Unter http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters finden Sie weitere Informationen zur Funktionsweise der Kategorieausrichtung. Oft ist es sinnvoller, sie per Slug als per ID abzurufen.
quelle
get_posts()
ist falsch. Sie können ersetzennew WP_Query($args)
mitget_posts($args)
im Code und es wird funktionieren.Ändern Sie die Kategorie (Kategorie-Slug-Name) nach ID oder Name oder Slug
quelle
Ein bisschen spät, möchte aber die Dinge klären und eine sauberere Antwort geben. User @ benz001 hat eine mögliche gültige Antwort gegeben, aber etwas Falsches gesagt: Gibt
get_posts
jede Art von Post-Typ zurück, standardmäßigposts
Post-Typ, genau wieWP_Query
. Die wahren Unterschiede zwischen den beiden werden HIER wunderbar erklärt .Tatsache ist, dass dem OP einfach einige Parameter im
$args
Array fehlten :Die Definition des Post-Typs, nach dem er sucht:
Und die Änderung des "Taxonomieteils" der Suchanfrage:
So kommen Sie zu Ihren nächsten Zeilen
Zeigt dir die benötigten Produkte :)
Alle anderen von @ benz001 angezeigten zusätzlichen Parameter sind natürlich gültig, werden jedoch vom OP nicht angefordert, weshalb ich mich entschlossen habe, sie in dieser Antwort zurückzulassen.
quelle
quelle