如何解决WordPress have_posts仅返回一页
我正在尝试建立一个小的wordpress网站,但发现自己陷于困境:
我想在页面中显示我的帖子,不带循环:
<?php if (have_posts()): while (have_posts()) : the_post(); ?>
<!-- article -->
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<!-- post title -->
<h2>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<!-- /post title -->
</article>
<!-- /article -->
<?php endwhile; ?>
在我的页面中执行此操作只会返回一个元素,这甚至不是帖子,而是页面
我很惊讶,因为这看起来很琐碎。所以我 编写了一些代码来调试它:
$a = get_posts();
echo("len : " . sizeof($a) . "<br/></br>");
foreach($a as $article){
echo($article->post_title . "<br/>");
}
对我而言,这完全没有道理。在过去的几个小时中,我一直在使用示例而不是其他方法进行检查和尝试,但无济于事....
编辑1:一句话,经典的have_posts()循环仅返回一页而不是所有帖子
谢谢。
解决方法
好的,我找到了 a 解决方案:
$allPostsWPQuery = new WP_Query(array('post_type'=>'post','post_status'=>'publish','posts_per_page'=>-1));
if ($allPostsWPQuery->have_posts()): while ($allPostsWPQuery->have_posts()) : $allPostsWPQuery->the_post(); ?>
使用此自定义查询替换循环块的开始
aaaaaand:
并且不要忘记在wp_reset_query();
编辑:感谢评论,我知道这是预期的行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。