我尝试创建一个显示我的帖子的页面(该页面不同于wp admin中定义的“帖子页面”)。
当我复制index.php
进入此新页面并添加
<?php query_posts(\'post_type=post&posts_per_page=5&paged=\'.get_query_var(\'paged\')); ?>
高于
<?php if ( have_posts() ) : ?>
...
...
然后一切正常-我的帖子显示出来了。如果我试着
<?php get_posts(); ?>
而不是
<?php query_posts(\'post_type=post&posts_per_page=5&paged=\'.get_query_var(\'paged\')); ?>
这些帖子没有显示出来。
因为每个人都建议get_posts()
一般情况下优于query_posts()
, 我想知道如何使用get_posts()
.
最合适的回答,由SO网友:IXN 整理而成
问题是,与普遍的看法相反,pre_get_posts
不适用于单页请求。1 即使对于is\\U front\\u page(),也是如此。
至于get posts()
, 为了工作,我需要使用如下语法:
<?php global $post;
$myposts = get_posts();
foreach( $myposts as $post ) : setup_postdata($post); ?>
...
<?php endforeach;
wp_reset_postdata(); ?>
而不是
<?php get_posts(); while ( have_posts() ) : the_post(); ?>
...