当参数作为变量时,Wordpress类别_not_in不起作用

时间:2014-11-17 11:59:56

标签: php wordpress

这是我的category.php。我想过滤此类别中的一些帖子。帖子张贴在父母和子女类别中。仅显示此类别中的帖子,而不显示子类别中的帖子。当变量作为变量给出时,“category__not_in”不起作用。如果我使用 'category__not_in'=> array(20,22,23,24)像这样完美地工作..在下面的代码中'category__not_in'=> array($sub_cat_ids)不起作用。请帮忙

<?php
$current_cat_id = get_cat_id( single_cat_title("",false) );
$catlist = get_categories('hide_empty=0&child_of='.$current_cat_id.'&depth=10&parent='.$current_cat_id );  
$sub_cat_ids = "";
foreach($catlist as $cat){
   $sub_cat_ids = $cat->cat_ID.",".$sub_cat_ids;
}
if(!empty($catlist)){ ?>
    <ul class="insight_style">
    <?php
        $i=1;
        $args = array(
        'post_type' => 'post',
        'posts_per_page' => -1,
        'category__not_in'=> array($sub_cat_ids),// not working
        'category__in' => $current_cat_id,
        'paged' => $paged
         );
        $page_query = new WP_Query($args); 
        if ( $page_query->have_posts() ) : while ($page_query->have_posts()) : $page_query->the_post(); 

            } ?>            
            <li>
            // do some stuff
            </li>
            <?php  $i++; endwhile; endif; wp_reset_query(); ?>
        </ul>
    <?php  } ?>

1 个答案:

答案 0 :(得分:0)

让我们将类别收集到一个数组中:

foreach ($catlist as $cat) {
    $catIds[] = $cat->cat_ID;
}

后来加入他们:

'category__not_in'=> array(join(",",$catIds)),

但首先,var_dump($catlist);要看,是否有任何类别。