我一直在寻找和回答这个问题,但我实际上不确定这是否可能!
我有一个 WP_Query 可以从几乎所有内容中提取帖子,但是,我希望排除特定类别和/或它的所有子类别。
搜索周围的人还没有找到解决方案。
到目前为止,这是我的查询:
$args = array(
'post_type' => 'sell_media_item',
'cat' => -98,
'orderby' => 'desc',
'paged' => $paged,
'posts_per_page' => 20
); ?>
<?php $loop = new WP_Query( $args ); ?>
我认为仅仅排除cat 98
也会抓住所有子类别,但显然不是。
我试过使用:
category__not_in
, depth=0
,parent=0
甚至对此进行改编,但没有运气。
有任何想法吗?
[编辑] 我正在使用一个名为 Collections 的自定义分类法,所以放入'collection' => 'vip'
查询意味着它只会显示这个集合。我在想是否有办法扭转这种情况,所以它会排除收藏?
因为不可能列出将出现在这里的所有类别,因为它们会一直在变化。
[编辑 2] 在下面的评论中讨论之后,这里是更新的代码。
$ex = array(
'taxonomy' => 'collection',
'child_of' => 98,
'hide_empty' => 0
);
$categories = get_categories($ex);
$categoriesToExclude = array();
foreach ($categories as $category) {
$categoriesToExclude[] = $category->cat_ID;
}
echo('<pre>'); var_dump($categories);
$args = array(
'post_type' => 'sell_media_item',
'category__not_in' => $categoriesToExclude,
'orderby' => 'desc',
'paged' => $paged,
'posts_per_page' => 20
); ?>
<?php echo('<br /><pre>'); var_dump($args); ?>
<?php $loop = new WP_Query( $args ); ?>