【发布时间】:2013-08-01 12:12:53
【问题描述】:
我一直在寻找和回答这个问题,但我不确定这是否可能!
我有一个 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 甚至是an adaptation of this,都没有运气。
有什么想法吗?
[编辑]
我正在使用一个名为 Collections 的自定义分类法,因此将 'collection' => 'vip' 放入查询中意味着它只会显示此集合。我在想是否有办法扭转这种情况,从而排除收藏?
由于无法列出将出现在此处的所有类别,因为它们会一直在变化。
[编辑 2] 在下面的 cmets 讨论之后,这里是更新的代码。
$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 ); ?>
【问题讨论】: