Consultar entradas por ID de taxonomía personalizada
Tengo un tipo de entrada personalizada llamado portfolio
y una taxonomía personalizada llamada build-type
(actuando como categorías)
Estoy tratando de consultar entradas de portfolio
por ID de build-type
, por ejemplo, todas las entradas de Portfolio en "Hoteles" (id=4 para esa taxonomía)
// obtiene el ID desde un campo personalizado para mostrar entradas en una página específica
$buildType = get_post_meta($post->ID, 'build_type_id', true);
// ejecutar consulta
query_posts(array(
'post_type' => 'portfolio',
'showposts' => -1,
'tax_query' => array(
'taxonomy' => 'build-type',
'terms' => $buildType,
'field' => 'term_id'
),
'orderby' => 'title',
'order' => 'ASC'
));
Actualmente está llamando a todas las entradas de portfolio
y no solo a aquellas con el ID de build-type
Para 'field' => 'term_id'
¿debería usar term_id
, tag_ID
, id
u otro valor?
¿Alguien sabe cómo hacer que esto funcione?
¡Gracias de antemano!

Buen trabajo Drew. Eso lo resolvió. Publiqué el script final en Github https://gist.github.com/1275191

Drew tenía razón, tax-query
necesita ser un array de arrays
La solución final es:
// obtiene el ID de un campo personalizado para mostrar posts en una página específica
$buildType = get_post_meta($post->ID, 'build_type_id', true);
// ejecuta la consulta
query_posts(array(
'post_type' => 'portfolio',
'showposts' => -1,
'tax_query' => array(
array(
'taxonomy' => 'build-type',
'terms' => $buildType,
'field' => 'term_id',
)
),
'orderby' => 'title',
'order' => 'ASC' )
);
En github aquí:
https://gist.github.com/1275191
¡Gracias!

No aceptar mi respuesta y aceptar la tuya realmente duele, colega... me duele en el corazón. Si alguien me necesita, estaré en la sala de descanso.

Jaja lo siento, amigo. Soy nuevo en esto, no sabía que solo se podía tener una respuesta. Lo volveré a marcar para que puedas salir de la sala de descanso.

Necesitas crear un array dentro de tax_query donde también puedas seleccionar operadores. Por ejemplo, un print_r de tax_query debería verse así:
Array
(
[relation] => AND
[0] => Array
(
[taxonomy] => tipo-construccion
[terms] => Array
(
[0] => termino1
[1] => termino2blabla
)
[field] => slug
[operator] => IN
)
[1] => Array
(
[taxonomy] => otra-taxonomia
[terms] => Array
(
[0] => termino1
[1] => termino2
)
[field] => slug
[operator] => IN
)
)
Por supuesto, puedes cambiar el field por id, pero yo siempre uso slugs para mantenerlo más simple. Como puedes ver, puedes consultar múltiples taxonomías de esta manera.
