5

と呼ばれるカスタム投稿タイプと(カテゴリとして機能する)portfolioと呼ばれるカスタム分類法がありますbuild-type

portfolioIDで投稿をクエリしようとしていますbuild-type。たとえば、「ホテル」のすべてのポートフォリオ投稿(その分類では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'
));

現在、 IDを持つ投稿だけでなく、すべての投稿を呼び出しています portfoliobuild-type

、、、または他の何かを'field' => 'term_id'使用する必要がありますか?term_idtag_IDid

誰かがこれを機能させる方法を知っていますか?

前もって感謝します!

4

2 に答える 2

15

https://wordpress.stackexchange.com/questions/30476/query-posts-by-custom-taxonomy-idの助けを借りて解決しました

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

于 2011-10-19T08:25:16.030 に答える
0

私は WP の信奉者ではなく、同じ問題を解決するために何時間も費やしてきました。最終的に、次のブログ投稿を見つけました: http://richardsweeney.com/blog/wordpress-3-0-custom-queries-post-types-and-taxonomies/

答えはやや悪いです: カスタム投稿タイプに対してこのようにフィルタリングすることはできないようです (投稿に対してのみ可能です)。これは残念です!

私が働いたのはこれでした:

$args['custom_tax'] = 'custom_tax_slug'; query_posts($args);

それが役に立てば幸い!

//マイク

于 2011-10-18T01:21:03.910 に答える