我试图在wordpress页面(称为“新闻”)上无限滚动帖子。我有一个简单的自定义查询:
<?php
$args=array(
\'post_type\' => \'post\',
\'posts_per_page\' => 4,
\'ignore_sticky_posts\' => true,
\'post_status\' => \'publish\',
\'orderby\' => \'date\',
\'paged\' => $paged
);
$wp_query = new WP_Query($args); ?>
<?php if ( $wp_query->have_posts() ) : ?>
<div class="infinite-container">
<?php while ( $wp_query->have_posts() ) : ?>
<div class="col-md-3 infinite-item">
<?php $wp_query->the_post(); ?>
<?php the_title(); ?>
</div>
<?php endwhile; ?>
</div>
<?php endif; ?>
在这之后,我有了“加载更多”按钮,如
Documentation:
<a class="infinite-more-link" href="http://localhost/greatwebsite/news/page/2">More</a>
所以我有我的“无限容器”,里面有“无限项”元素。
但我有一个问题:
这个无限量在滚动时加载所有帖子,然后重新开始。因此,它会加载所有9篇现有的帖子,然后永远重复这一点。
这是我创建类的部分:
var infinite = new Waypoint.Infinite({
element: $(\'.infinite-container\')[0]
})
最合适的回答,由SO网友:hrk 整理而成
您似乎从未用值填充$paged变量。尝试在查询之前添加此内容(来自codex):
if ( get_query_var( \'paged\' ) ) { $paged = get_query_var( \'paged\' ); }
elseif ( get_query_var( \'page\' ) ) { $paged = get_query_var( \'page\' ); }
else { $paged = 1; }
此外,你的“加载更多”链接有硬编码的页码,所以每次都会加载相同的页面(2)。试试这样(未经测试)
<a class="infinite-more-link" href="http://localhost/greatwebsite/news/page/<?php echo $paged + 1; ?>">More</a>