tax_query en get_posts() no funciona

11 abr 2013, 11:30:53
Vistas: 38.6K
Votos: 9

Estoy intentando mostrar todas las entradas dentro de cada taxonomía para un tipo de entrada personalizada llamada product (productos de jigoshop). Obtengo todas las taxonomías usando $cats = get_terms('product_cat');, luego hago un bucle a través de todas ellas y obtengo todas las entradas que están dentro de la taxonomía. El problema es que no funciona. ¡Simplemente devuelve un resultado en blanco!

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

Si cambio 'terms' => array($cat->slug) a 'terms' => $cat->slug devuelve todas las entradas, como si ignorara completamente el tax_query.

¿Alguna idea de qué está causando este fallo? He intentado jugar con el operator, cambiar el field a ID (y también enviar $cat->ID como término)... ¡nada funciona!

$cat tiene los siguientes 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
)

Entonces $cat->slug y $cat->taxonomy son valores válidos.

0
Todas las respuestas a la pregunta 1
3
25

El tax_query recibe un array de arrays de argumentos para la consulta de taxonomías (recibe un array de arrays) pero estás usando solo un array simple. El código correcto es el siguiente:

$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 más información visita esta página.

11 abr 2013 11:39:32
Comentarios

¡Oh, por supuesto! Qué tonto fui, pasé más de una hora intentando arreglar esto. ¡Muchas gracias!

qwerty qwerty
11 abr 2013 12:30:07

Afortunado tú, yo pasé tres días con esto :( ¿Hay algo como retroalimentación sobre cuántas publicaciones se recuperan o más bien POR QUÉ no se encuentran? Muchos tutoriales y ejemplos, incluso aquí, son sobre versiones anteriores o simplemente no funcionaron para mí.

piotao piotao
8 nov 2018 15:48:56

La URL de la documentación ha cambiado. La documentación para los Parámetros de Taxonomía de WP_Query ahora está aquí: https://developer.wordpress.org/reference/classes/wp_query/#taxonomy-parameters

Tomas Eklund Tomas Eklund
23 mar 2020 18:00:12