从WP_QUERY中排除类别

时间:2017-11-26 作者:risha riss

在过去的几天里,我一直在试图从easy digital downloads的存档中排除一个类别,我正在自定义小部件中显示该类别,但是无论我怎么做,我都无法隐藏一个名为“custom project”的类别。

这是我尝试使用的代码,基于https://codex.wordpress.org/Class_Reference/WP_Query

$argsQuery = array(
    \'posts_per_page\' => 3,
    \'post_type\' => \'download\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'download_category\',
            \'field\' => \'slug\',
            \'terms\' => \'custom-project\',
            \'include_children\' => true,
            \'operator\' => \'NOT_IN\'
        )
    ),
);
$get_latest_downloads = new WP_Query( $argsQuery );                         
$i=1;
while ( $get_latest_downloads->have_posts() ) : $get_latest_downloads->the_post();

//WIDGET BODY CODE

$i++;
endwhile;
我还尝试使用“cat”而不是“tax\\u query”,但没有成功,因为类别“custom project”仍然显示在帖子的循环中。

$argsQuery = array(
    \'posts_per_page\' => 3,
    \'post_type\' => \'download\',
    \'cat\' => \'-5\',
);
$get_latest_downloads = new WP_Query( $argsQuery );                         
$i=1;
while ( $get_latest_downloads->have_posts() ) : $get_latest_downloads->the_post();

//WIDGET BODY CODE

$i++;
endwhile;
我确信slug名称和类别ID是正确的。非常感谢您的任何帮助。

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

问题1在税务查询中,您应该使用NOT IN 而不是NOT_IN. 这会妨碍您的税务查询工作(假设其他字段正确)。

问题2WP_Query(), 您应该使用category__not_in 而不是cat. 因此,请将代码更改为:

$argsQuery = array(
    \'posts_per_page\'   => 3,
    \'post_type\'        => \'download\',
    \'category__not_in\' => 5 ,
);

SO网友:Joe

https://codex.wordpress.org/Class_Reference/WP_Query

category\\uu not\\u in(数组)-使用类别id。

$argsQuery = array(
    \'posts_per_page\'   => 3,
    \'post_type\'        => \'download\',
    \'category__not_in\' => array( 5 ), // array, not a string
);

结束