如何在QUERY_POST中排除某个类别的3个最新帖子

时间:2015-07-21 作者:Asghar

我是wordpress开发的新手,通常使用带有简单命令的查询帖子。

我在主页上有一个滑块,它显示了3篇来自“特色”类别的最新帖子。我还有一个新闻框类别,其中显示了“新闻”类别中的3篇最新帖子。

对于我主页的其余部分,我想显示10篇帖子。但我想从“特色”类别和“新闻”类别中排除3篇最新帖子,因为我不想在主页中重复(重复)帖子。

非常感谢您的帮助。

1 个回复
SO网友:Emetrop

我会这样做:

$excluded_posts = array();

// select first 3 featured posts ordered by date

$args = array (
    \'post_type\'              => array( \'post\' ),
    \'category_name\'          => \'featured\',
    \'posts_per_page\'         => \'3\',
    \'order\'                  => \'DESC\',
    \'orderby\'                => \'date\',
    \'ignore_sticky_posts\'    => true, // or maybe not?
);

$query = new WP_Query( $args );

while ( $query->have_posts() ) { $query->the_post();
    $excluded_posts[] = get_the_ID();
}

wp_reset_postdata();

// select first 3 news ordered by date

$args[\'category_name\'] = \'news\';

$query = new WP_Query( $args );

while ( $query->have_posts() ) { $query->the_post();
    $excluded_posts[] = get_the_ID();
}

wp_reset_postdata();

$args = array (
    \'post__not_in\'              => $excluded_posts,
    \'ignore_sticky_posts\'       => true,
);

$query = new WP_Query( $args );

while ( $query->have_posts() ) { $query->the_post();
    // finally loop with last 10 without last 3 news and featured posts
}

wp_reset_postdata();

结束

相关推荐

Excluded category from loop

我使用它从循环中排除特定类别。它做到了这一点,但它也做到了这一点:在我的页面上,它显示了除此之外的其他类别的帖子。/** Replace the standard loop with our custom loop */ remove_action( \'genesis_loop\', \'genesis_do_loop\' ); add_action( \'genesis_loop\', \'child_do_custom_loop\' ); function chil