按自定义分类ID查询帖子

时间:2011-10-07 14:21:41

标签: wordpress taxonomy custom-taxonomy

我有一个名为portfolio的自定义帖子类型和一个名为build-type的自定义分类(作为类别)

我正在尝试按portfolio ID查询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'
));

目前它正在调用所有 portfolio帖子,而不仅仅是那些build-type ID

的帖子

对于'field' => 'term_id',我应该使用term_idtag_IDid还是其他?

任何人都知道如何使这个工作?

提前致谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我不是WP-gury,我花了数小时努力解决同样的问题。最后我发现了这篇博文:http://richardsweeney.com/blog/wordpress-3-0-custom-queries-post-types-and-taxonomies/

答案有点半坏:显然你不能像这样过滤自定义帖子类型(它只适用于帖子),这是一种耻辱!

我做的工作是:

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

希望它有所帮助!

//麦克