WordPress:防止显示子类别帖子

时间:2010-05-29 02:24:48

标签: wordpress categories

我想知道如何防止显示子类别帖子。我的主页列出了三个“主要类别”(父类别)的所有帖子,但不幸的是,它还列出了子类别中的一些帖子。

以下是我用于获取特定类别帖子的代码:

<h2>Category Name</h2>
<ul>
    <?php $category_query = new WP_Query(array('category_name' => 'category1', 'showposts' => 5)); ?>
    <?php while ($profissionais_query->have_posts()) : $profissionais_query->the_post(); ?>
    <li>
        <a class="title" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        <?php the_excerpt(); ?>
    </li>
    <?php endwhile; ?>
</ul>

有没有人有想法?

谢谢。

3 个答案:

答案 0 :(得分:1)

尝试这种新查询方式;它只显示一个类别。它可以在页面或帖子中使用多个时间(启用php执行)而不会发生冲突:

<?php $my_query = new WP_Query('category_name=mycategory&showposts=5'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
<?php the_title(); ?></a>
<?php the_excerpt(); ?>
<?php endwhile; ?>

答案 1 :(得分:1)

这应该有效:

<?php $category_ID = $cat; // get ID of current category ?>

<?php $excludes = get_categories('child_of='.$category_ID) ;

    // For each child, add just the ID to an array
    foreach ( $excludes as $key => $value ){
        $exs[] = $value->cat_ID;
    }

$my_query = new WP_Query(array(
            'cat' => $category_ID,
            'category__not_in' => $exs

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

答案 2 :(得分:0)

以下代码仅显示当前类别的帖子

<?php
$current_cat = get_query_var('cat');

$args=array(
    'category__in' => array($current_cat),
    'showposts' => 5
);

query_posts($args);

set_query_var("cat",$current_cat);

if (have_posts()) :

    while (have_posts()) : the_post();
?>
        <a class="title" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        <?php the_excerpt(); ?>
<?php

    endwhile;

else : 

?>
        <h2>Nothing found</h2>
<?php 

endif;

?>