航点+无限滚动,可自定义查询

时间:2017-02-03 作者:Henning Fischer

我试图在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]
})

1 个回复
最合适的回答,由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>

相关推荐

如何读取WordPress$Query关联数组(散列)键的值

WordPress编程新手(来自更为传统的环境),并试图了解其一些“独特”特性。我们的网站上有一个目录页,此代码驻留在functions.php, 如果条件为true,则调整结果。if( $query->is_post_type_archive( \'directory\' ) ){ ...//do stuff } 我想知道如何获取is_post_type_archive 这就是“目录”当我对值使用测试时。。。var_dumb($query->is_post