我的主页上有一个帖子列表,按时间顺序显示所有帖子(DESC)。我想从此列表中排除特定类别的帖子。我该怎么做?我的询问是......
<ul class="home-news"><?php
$args = array( 'numberposts' => 5, 'order'=> 'DESC', 'orderby' => 'post_date' );
$postslist = get_posts( $args );
foreach ($postslist as $post) : setup_postdata($post); ?>
<li>
<a href="<?php the_permalink() ?>">
<?php the_title(); ?>
<span>Posted on <?php the_date(); ?></span>
</a>
</li>
<?php endforeach; ?>
</ul>
答案 0 :(得分:0)
解决方案1
将以下内容添加到args
数组中:
$args = array( 'category' => '-id', ...);
其中id
是您要排除的类别的类别ID。此解决方案不会减少所请求的帖子数量。
解决方案2
在foreach
循环内部的开头添加以下内容:
<?php
$category = get_the_category();
if ($category[0] -> cat_name == 'exclude_category_name') continue;
?>
请注意,如果帖子有多个类别,您需要遍历$category
数组并检查每个元素。