Ich versuche, alle Posts in jeder Taxonomie für einen benutzerdefinierten Post-Typ mit dem Namen product
(Jigoshop-Produkte) auszudrucken. Also bekomme ich alle Taxonomien mit $cats = get_terms('product_cat');
, dann gehe ich sie alle durch und bekomme alle Beiträge, die in der Taxonomie enthalten sind. Das Problem ist, dass es nicht funktioniert. Es kommt einfach leer zurück!
$uposts = get_posts(array(
'post_type' => 'product',
'numberposts' => -1,
'tax_query' => array(
'taxonomy' => $cat->taxonomy,
'field' => 'slug',
'terms' => array($cat->slug),
'operator' => 'IN'
)
));
Wenn ich die 'terms' => array($cat->slug)
in 'terms' => $cat->slug
ändere, gibt es all posts zurück, als würde die tax_query komplett ignoriert.
Irgendwelche Ideen, warum dies fehlschlägt? Ich habe versucht, mit operator
herumzuspielen, field
in ID zu ändern (und auch $cat->ID
als Begriff zu senden) ... nichts funktioniert!
$ cat hat folgende Werte:
stdClass Object
(
[term_id] => 114
[name] => Ny testkategori
[slug] => ny-testkategori
[term_group] => 0
[term_taxonomy_id] => 115
[taxonomy] => product_cat
[description] =>
[parent] => 0
[count] => 2
[meta_id] => 3
[jigoshop_term_id] => 114
[meta_key] => order
[meta_value] => 1
)
Also sind $ cat-> slug und $ cat-> taxonomy gültige Werte.
tax_query akzeptiert ein Array von Steuerabfrageargumenten (es akzeptiert ein Array von Arrays), aber Sie verwenden nur ein einzelnes Array. Der richtige Code lautet wie folgt.
$uposts = get_posts(
array(
'post_type' => 'product',
'numberposts' => -1,
'tax_query' => array(
array(
'taxonomy' => $cat->taxonomy,
'field' => 'slug',
'terms' => array($cat->slug),
'operator' => 'IN',
)
)
)
);
Für weitere Informationen besuchen Sie diese Seite .