Problem with WP_query

时间:2014-05-02 作者:user51125

我对2 wp\\u查询有一个非常恼人的问题。

显示1篇文章-特写文章

 <?php 
 $do_not_duplicate = array(); 



 $args = array (
\'post_type\'  => \'post\',
\'posts_per_page\'  => \'1\',

);

$my_query = new WP_Query( $args );
if ($my_query->have_posts()) :
while($my_query->have_posts()) :
$my_query->the_post();
$do_not_duplicate[] = $post->ID; 
get_template_part( \'content-feat\',get_post_format() );
 endwhile;
endif;
wp_reset_postdata(); 

?>
其余的帖子

<?php 


        // the query to set the posts per page to 6
    query_posts($args);
    $args = array(
        \'posts_per_page\' => 6, 
        \'paged\' => $paged,

        );


    $my_query = new WP_Query( $args );
    if ($my_query->have_posts()) :
    while($my_query->have_posts()) :
    $my_query->the_post();
        if ( !in_array( $post->ID, $do_not_duplicate ) ) { // check IDs         

            get_template_part( \'content\', get_post_format() );
        }

        endwhile;
        endif;

     ?>

The problem:

第二个循环是从第一个查询中删除帖子(就像它的假设一样),应该显示6篇帖子。

问题是第一页显示了5篇文章,第二页显示了6篇文章。我不知道问题出在哪里,你们能帮帮我吗?我被这个问题困住了。Thx公司

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

您的第二块代码很奇怪。使用query_posts() 真的没有道理。我甚至不知道这是打算做什么。此外,这并不是从循环中排除帖子的最佳方法,这也是导致5篇与6篇帖子出现问题的原因。

您需要排除带有查询参数的“请勿重复”帖子。

$args = array(
  \'posts_per_page\' => 6, 
  \'paged\' => $paged,
  \'post__not_in\' => $do_not_duplicate,
);

$my_query = new WP_Query( $args );
if ($my_query->have_posts()) {
  while($my_query->have_posts()) {
    $my_query->the_post();
    get_template_part( \'content\', get_post_format() );
  }
}
导致混淆的是,您的查询返回6个结果,但其中包括要排除的帖子。如果将其排除在循环中,则最终只有5篇文章。

结束

相关推荐

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

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