私はportfolio
と呼ばれるカスタム投稿タイプとbuild-type
と呼ばれるカスタム分類法を持っています(カテゴリーとして振る舞う)
私はbuild-type
IDでportfolio
投稿をクエリしようとしています。 "ホテル"にあるすべてのポートフォリオ投稿(その分類のid = 4)
// gets the ID from a custom field to show posts on a specific page
$buildType = get_post_meta($post->ID, 'build_type_id', true);
// run query
query_posts(array(
'post_type' => 'portfolio',
'showposts' => -1,
'tax_query' => array(
'taxonomy' => 'build-type',
'terms' => $buildType,
'field' => 'term_id'
),
'orderby' => 'title',
'order' => 'ASC'
));
現在、build-type
IDを持つ投稿だけでなく、 all portfolio
投稿を呼び出しています。
'field' => 'term_id'
には、term_id
、tag_ID
、id
などを使用する必要がありますか
誰もがこれを機能させる方法を知っていますか?
前もって感謝します!
これがうまくいかないのは、 'tax_query'が配列の配列である必要があるからです(混乱していると思います)。
...
'tax_query' => array(
array(
'taxonomy' => 'build-type',
...
そのようにしているので、いくつかの異なるルールをまとめてグループ化することができます。
ドリューは正しかった、tax-query
は配列の配列である必要がある
最終的な解決策は次のとおりです。
// gets the ID from a custom field to show posts on a specific page
$buildType = get_post_meta($post->ID, 'build_type_id', true);
// run 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' )
);
ここgithubに:
https://Gist.github.com/1275191
ありがとうございます。
演算子を選択できるtax_query内に配列を作成する必要があります。たとえば、tax_queryのprint_rは、次のようになります。
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
)
)
もちろん、あなたはidのフィールドを変更することができますが、私はそれを簡単にするために常にスラグを使いました。ご覧のとおり、このように複数の分類法を照会できます。