自定义帖子类型、自定义分类、仅来自分类的查询帖子(的子项)

时间:2013-01-18 作者:Marcin Bobowski

我有一个自定义的帖子类型(公文包类型)和一个自定义的层次分类法(公文包类别)

现在我只想查询potrfolio类型的帖子,所以我会:

$paged = 1;
if ( get_query_var(\'paged\') ) $paged = get_query_var(\'paged\');
if ( get_query_var(\'page\') ) $paged = get_query_var(\'page\');
query_posts( \'&post_type=portfolio-type&paged=\' . $paged );
直到现在,一切都很顺利。现在,我只想查询具有给定ID的自定义分类法类别的子自定义分类法“类别”中的帖子。

所以我试着:

$paged = 1;
if ( get_query_var(\'paged\') ) $paged = get_query_var(\'paged\');
if ( get_query_var(\'page\') ) $paged = get_query_var(\'page\');
$query_args = array(
    \'post_type\' => \'portfolio-type\',
    \'cat\' => $CAT_ID,
    \'paged\' => $paged,  
);
query_posts( $query_args );
失败(没有结果),但我理解原因。这些帖子不属于标准类别,而是属于自定义分类法的类别,所以看看wp Codex,这就是我的收获:

$query_args = array(
    \'post_type\' => \'portfolio-type\',
    \'paged\' => $paged,
    \'tax_query\' => array(
        \'taxonomy\' => \'portfolio-category\',
        \'field\' => \'id\',
        \'terms\' => $CAT_ID
    )
);
再次失败,但这次显示了公文包类型post\\u type中的所有自定义帖子(tax\\u查询不起作用,无论我在那里输入什么ID,结果都是一样的)

我错过了什么?

1 个回复
SO网友:Marcin Bobowski

问题在于没有足够仔细地阅读文档;)

正如它所代表的http://codex.wordpress.org/Class_Reference/WP_Query 在“tax\\u query”部分,“tax\\u query采用tax query arguments数组”,因此正确的代码部分应该是:

$query_args = array(
    \'post_type\' => \'portfolio-type\',
    \'paged\' => $paged,
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'portfolio-category\',
            \'field\' => \'id\',
            \'terms\' => $CAT_ID
        )       
    ),
);
现有数组()中缺少的数组()是一个问题。谢谢哈克雷:)。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post