我对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公司
最合适的回答,由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篇文章。