tax_query em get_posts () não está funcionando?

5

Estou tentando imprimir todas as postagens em cada taxonomia para um tipo de post personalizado chamado product (jigoshop products). Então eu obtenho todas as taxonomias usando $cats = get_terms('product_cat'); , depois faço um loop em todas elas e obtenho todas as postagens que estão dentro da taxonomia. O problema é que não funciona. Apenas retorna em branco!

$uposts = get_posts(array(
    'post_type' => 'product',
    'numberposts' => -1,
    'tax_query' => array(
        'taxonomy' => $cat->taxonomy,
        'field' => 'slug',
        'terms' => array($cat->slug),
        'operator' => 'IN'
    )
));

Se eu alterar as postagens 'terms' => array($cat->slug) para 'terms' => $cat->slug , ele retornará todos , como se ignorasse completamente o tax_query.

Alguma idéia do que está causando isso falhar? Eu tentei brincar com operator , alterando field para ID (e também enviando $cat->ID como um termo) ... nada funciona!

$ cat tem os seguintes valores:

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
)

Assim, $ cat- > slug e $ cat- > taxonomia são valores válidos.

    
por qwerty 11.04.2013 / 10:30

1 resposta

13

tax_query recebe uma matriz de matrizes de argumentos de consulta de impostos (é preciso uma matriz de matrizes), mas você está usando apenas uma matriz. O código correto é o seguinte.

$uposts = get_posts(
    array(
        'post_type' => 'product',
        'numberposts' => -1,
        'tax_query' => array(
            array(
                'taxonomy' => $cat->taxonomy,
                'field' => 'slug',
                'terms' => array($cat->slug),
                'operator' => 'IN',
            )
         )
    )
);

Para obter mais informações, visite esta página .

    
por Vinod Dalvi 11.04.2013 / 10:39