将最新帖子从类别X中排除,但显示休息

时间:2011-05-01 作者:Wordpwess

我想显示所有帖子,但只从“特色”类别中排除最新的帖子,其他来自此类别的帖子应该会显示。你知道我应该向循环中添加什么来实现这一点吗?我希望所有其他猫的帖子也能显示出来!

2 个回复
SO网友:ggutenberg

由于默认情况下,循环将按日期降序检索帖子,因此可以执行以下操作:

环路外:

$featured_flag = false;
回路内部:

if(in_category(\'Featured\')) {
    if($featured_flag) {
        the_content();
    }
    else {
        $featured_flag = true;
    }
}
else {
    the_content();
}
第一次遇到来自特色类别的帖子(即最近的帖子)时,它将被忽略,并且$featured_flag 将设置为true. 循环的后续时间the_content() 将显示。

Edit: 要考虑分页,您可以更改$featured_flag$_SESSION 变量这样,真/假值将在多个页面上保持,并且一旦设置为true 帖子将继续正确显示。感谢您指出我的错误方式(网络:)

SO网友:Bainternet

不久前,我发布了一个简单的函数gets latest post in a certain category:

function get_lastest_post_of_category($cat){
    $args = array( \'posts_per_page\' => 1, \'order\'=> \'DESC\', \'orderby\' => \'date\', \'category__in\' => (array)$cat);
    $post_is = get_posts( $args );
    return $post_is[0]->ID;
}
因此,一旦有了该功能,就可以使用WP\\u Query或Query\\u posts并使用post__not_in 参数可以排除该帖子,例如:

query_posts(array(`post__not_in` => array(get_lastest_post_of_category($CAT_ID))));
只需将$CAT\\U ID更改为实际类别ID

结束