如何避免头版出现重复帖子?

时间:2012-04-30 作者:Marcin

如何避免头版出现重复帖子?我的所有帖子都有一个类别“新闻”,还有一些类别像“蔬菜”和“水果”。每篇文章都属于“新闻”和特定类别。

在页面顶部,我有最近的3条“新闻”帖子,在其他地方,我想按fe。“水果”类的3篇最近帖子,但不要重复3篇最近的“新闻”帖子。我试过这样的事情:

query_posts( \'posts_per_page=3&category_name=fuits\' ) && query_posts(\'posts_per_page=3&category_name=news&offset=3\' );
有人能帮我吗?

1 个回复
SO网友:EAMann

不要使用&& 就像那样。不要使用query_posts() 首先(这是为了修改查询,而不是执行单独的查询!)相反,先进行第一次选择,然后取出该选择中帖子的ID,并将其传递到第二个查询中。

$fruit = get_posts( 
    array(
         \'posts_per_page\' => 3,
         \'category_name\'   => \'fruits\'
    )
);

// Get an array with just the IDs of the posts in the $fruit array
$fruit_ids = wp_list_pluck( $fruit, \'ID\' );

$news = get_posts( 
    array(
        \'posts_per_page\' => 3,
        \'category_name\'  => \'news\',
        \'post__not_in\'   => $fruit_ids
    )
);
您的$fruit 数组现在包含三个最新的水果贴子和$news 数组现在将包含3条最新的新闻帖子(不包括$fruits 阵列)。

您可以这样运行循环:

foreach ( $news as $post ) {
    setup_postdata( $post );

    // Now use the_title(), the_content(), etc as usual.
}

结束

相关推荐

使POSTS_PER_PAGE值在所有页面上都相同

这个我差不多做完了,只剩下一个小问题。希望你能帮助我。我有两个非常简单的自定义循环。一个用于粘性贴子,一个用于非粘性贴子。我已经设法使粘性帖子只显示在第1页上,而不显示在其余页面上(使用分页时),这正是我想要的。问题是:如果我将posts\\u per\\u page设置为8,并且数据库中有1篇粘性文章,那么第一页上会有9篇文章,其余页面上会有8篇文章。我已在循环之间使用此脚本成功更改了posts\\u per\\u page值:$postcount = $wp_query->post_count;