2013-08-01 40 views
1

我一直在寻找高和低和答案,但我不肯定实际上这是可能的!排除所有子类别的wp_query

我从几乎所有的东西拉职位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_indepth=0parent=0甚至an adaptation of this,没有运气。

任何想法?

[编辑] 我使用一个名为集合的自定义分类,因此将'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); ?> 

回答

0

所以!

看来我试图做不可能的事。我无法让这个脚本为我的生活工作。所以我尝试了一个不同的角度。我决定将所有其他术语都转换为父项,并且只是调用它而不是排除自定义分类和术语。

下面的代码,如果任何人的兴趣......

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;    

$args = array(
    'post_type' => 'sell_media_item', 
    'taxonomy' => 'collection', 
    'term' => 'clubs', 
    'orderby' => 'desc', 
    'paged' => $paged, 
    'posts_per_page' => 20 
); 


$loop = new WP_Query($args); 

if ($loop->have_posts()) : while ($loop->have_posts()) : $loop->the_post(); ?> 
3

我会得到所有的子类别与get_categories()的列表,然后建立基于结果的'cat'排除阵列。

$args = array('parent' => 98); 
$categories = get_categories($args); 

$categoriesToExclude = array(); 
foreach ($categories as $category) { 
    $categoriesToExclude[] = $category->cat_ID; 
} 


$args = array(
    'post_type' => 'sell_media_item', 
    'category__not_in' => $categoriesToExclude, 
    'orderby' => 'desc', 
    'paged' => $paged, 
    'posts_per_page' => 20 
); ?> 

<?php $loop = new WP_Query($args); ?> 

这只是一个例子,您可能需要稍微修改以适合您的需求。

+0

请问其实我的类别是自定义分类以任何方式影响呢?似乎没有工作:/ – lukeseager

+0

你在'$ categoriesToExclude'数组中得到了什么?也许你需要在'get_categories()'中指定一个类型或者东西,不确定。查看'get_categories()'的文档。 –

+0

Yea刚刚检查了这个,在$ args中添加'taxonomy'=>'collection'似乎没有改变任何东西 – lukeseager

相关问题