5

我有一个名为的自定义帖子类型和一个名为(充当类别)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-typeID的帖子

因为'field' => 'term_id'我应该使用term_id,tag_ID还是id其他东西?

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

提前致谢!

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'; 查询帖子($args);

希望能帮助到你!

//麦克风

于 2011-10-18T01:21:03.910 回答