加载单个帖子模板时,WordPress已经在数据库中查询了该帖子。当你打电话的时候query_posts(\'post_type=post&posts_per_page=1\');
, 然后运行循环,只需加载并输出一篇文章,默认情况下,这将是最新的文章。它还具有覆盖原始主查询的副作用。
你不需要,也不应该打电话query_posts
在模板中。
要在当前查看的单个帖子旁边加载其他帖子,use WP_Query
, 并保持主查询不变。
// load and display all posts
// setting post_type is unnecessary, it will default to post
$all_posts = new WP_Query( array( \'posts_per_page\' => -1 ) );
while( $all_posts->have_posts() ):
$all_posts->the_post();
// your markup for all posts
endwhile;
// reset the global post variable
wp_reset_postdata();
// now output the single post
// no need for a query, the post data already exists
// in the global $wp_query
while( have_posts() ):
the_post();
// your markup for the single post
endwhile;