为什么WP_QUERY中的TAX_QUERY不工作

时间:2020-09-20 作者:Shark Deng

我使用此代码获取该类别下的所有帖子(名称:“Quiques”,slug:“Quiques”),这是一种自定义的分类法(slug是st\\u ai\\u cat)。

// the query
$term_name = get_query_var(\'taxonomy\'); // current taxonomy
$cat_name = get_query_var( \'term\' ); // curent cat name
    
    echo $term_name;
    echo $cat_name;
$wp_query = new WP_Query(array(\'post_type\'=>\'st_ai\',
                               \'post_status\' => \'publish\',
                               \'tax_query\' => array(
                                   array(
                                      \'taxonomy\' => $term_name,
                                      \'field\' => \'slug\',
                                      \'term\' => $cat_name,
                                   )
                               )
                               ));
    
if ( $wp_query->have_posts() ) {
    echo "good";
}
?>
但它总是一无所获。如果我删除tax\\u查询,那么它可以显示自定义分类下的所有帖子。但我只想得到属于问答类的帖子。为什么会发生这种情况?我再次检查了它的用法。

非常感谢。

1 个回复
最合适的回答,由SO网友:Maxime 整理而成

尝试按类别ID更改$cat\\U名称。

$term_name = get_query_var(\'taxonomy\'); // current taxonomy
$cate = get_queried_object();
$cat_id = $cate->term_id; // current category ID
    
    echo $term_name;
    echo $cat_id;
$wp_query = new WP_Query(array(\'post_type\'=>\'st_ai\',
                               \'post_status\' => \'publish\',
                               \'tax_query\' => array(
                                   array(
                                      \'taxonomy\' => $term_name,
                                      \'field\' => \'slug\',
                                      \'term\' => $cat_id,
                                   )
                               )
                               ));
    
if ( $wp_query->have_posts() ) {
    echo "good";
}
?>

相关推荐

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

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