从一个查询中获取帖子ID,并从另一个查询中排除

时间:2013-07-29 作者:Poisontonomes

我有两个WP_Query 类,一个显示4个“特色”帖子,另一个显示“基本”帖子。

我想做的是从基本查询中排除这4篇最新的“特色”帖子。我想这只是一个添加post__not_in 变量,但如何从第一个查询中获取ID并将其从第二个查询中排除?

1 个回复
最合适的回答,由SO网友:Biranit Goren 整理而成

在运行第一个查询的循环时,只需将ID收集到一个数组中。示例:

// define your first query\'s arguments
$args1 = array(
    ... your first query args
);
$query1 = new WP_Query($args1);
while ( $query1->have_posts() ): $query1->the_post();
    // this is your loop. Do whatever you want here
    // add this in the loop to collect the post IDs
    $exclude_posts[] = $post->ID;
endwhile;

// define your second query\'s arguments
$args2 = array(
    \'post__not_in\' => $exclude_posts,
    ... rest of your parameters
);
$query2 = new WP_Query($args2);
while ( $query2->have_posts() ): $query2->the_post();
    // this is your second loop. Do whatever you want here
endwhile;
wp_reset_postdata();

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post