Query dei post per ID di tassonomia personalizzata
Ho un tipo di post personalizzato chiamato portfolio
e una tassonomia personalizzata chiamata build-type
(che funge da categorie)
Sto cercando di eseguire una query dei post di tipo portfolio
per ID di build-type
, ad esempio tutti i post del Portfolio nella categoria "Hotels" (id=4 per quella tassonomia)
// ottiene l'ID da un campo personalizzato per mostrare i post su una pagina specifica
$buildType = get_post_meta($post->ID, 'build_type_id', true);
// esegue la query
query_posts(array(
'post_type' => 'portfolio',
'showposts' => -1,
'tax_query' => array(
'taxonomy' => 'build-type',
'terms' => $buildType,
'field' => 'term_id'
),
'orderby' => 'title',
'order' => 'ASC'
));
Attualmente sta richiamando tutti i post di tipo portfolio
e non solo quelli con l'ID di build-type
specificato
Per 'field' => 'term_id'
dovrei usare term_id
, tag_ID
, id
o qualcos'altro?
Qualcuno sa come farlo funzionare?
Grazie in anticipo!

Il motivo per cui non funziona è perché 'tax_query' deve essere un array di array (so che può creare confusione).
...
'tax_query' => array(
array(
'taxonomy' => 'build-type',
...
È strutturato in questo modo per consentire di raggruppare insieme diverse regole.

Ottimo lavoro Drew. Questo ha risolto il problema. Ho pubblicato lo script finale su Github https://gist.github.com/1275191

Drew aveva ragione, tax-query
deve essere un array di array
La soluzione finale è:
// ottiene l'ID da un campo personalizzato per mostrare gli articoli in una pagina specifica
$buildType = get_post_meta($post->ID, 'build_type_id', true);
// esegue la query
query_posts(array(
'post_type' => 'portfolio',
'showposts' => -1,
'tax_query' => array(
array(
'taxonomy' => 'build-type',
'terms' => $buildType,
'field' => 'term_id',
)
),
'orderby' => 'title',
'order' => 'ASC' )
);
Su github qui:
https://gist.github.com/1275191
Grazie!

Non accettare la mia risposta e accettare la tua mi ha fatto davvero male... mi ha spezzato il cuore. Se qualcuno ha bisogno di me, sarò nella lounge.

Ahah scusa amico. Sono nuovo a tutto questo, non sapevo che si potesse avere solo una risposta accettata. Lo ricambierò così potrai tornare fuori dalla lounge

Devi creare un array all'interno di tax_query dove puoi anche selezionare gli operatori. Ad esempio, un print_r di tax_query dovrebbe apparire così.
Array
(
[relation] => AND
[0] => Array
(
[taxonomy] => build-type
[terms] => Array
(
[0] => term1
[1] => term2blabla
)
[field] => slug
[operator] => IN
)
[1] => Array
(
[taxonomy] => another-taxonomie
[terms] => Array
(
[0] => term1
[1] => term2
)
[field] => slug
[operator] => IN
)
)
Ovviamente puoi cambiare il campo in id ma io ho sempre usato gli slug per mantenere le cose più semplici. Come puoi vedere puoi interrogare più tassonomie in questo modo.
