it-swarm.com.de

tax_query in get_posts () funktioniert nicht?

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.

7
qwerty

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 .

16
Vinod Dalvi