排除存档页面中显示的子子类别

时间:2015-10-29 作者:Rain Man

我有以下类别结构:

Category x >> Category x Sub >> Category x Sub Sub 
在我的index.php 文件,我已创建指向的链接category x 等等

因此,当用户单击主页中的链接时,他们会进入此页面:wordpress/category/categoryx/

仅在下发布的帖子category x sub 应该显示在这里,问题是在这个页面中,发布的帖子category x sub sub 也会显示。

在我的archive.php 我使用了:

  <?php while ( have_posts() ) : the_post(); if (in_category($cat)) { ?>
  ....
  <?php } endwhile; ?>
这将正确隐藏categoy x sub sub 主类别中的帖子,但它也会将它们隐藏在自己的子类别中。

因此,在本页中:wordpress/category/categoryx/category-x-sub/

发布的帖子category x sub sub 也是隐藏的。

1 个回复
SO网友:Ilya Shyla
/* exclude sons */
$_categories = get_categories(array( \'child_of\' => 16));
$exclude = \'\';
foreach($_categories as $category){
    $_exclude .= \'-\'.$category->term_id.\',\';
}
$_exclude = substr($_exclude,0,-1);
$_cats = $cat.\',\'.$_exclude;
query_posts(array( \'cat\' => $_cats ));
while ( have_posts() ) : the_post(); 
    ......
endwhile;