tax_query en get_posts() no funciona
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.
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.

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

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í.

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
