重复的帖子使用无限滚动在循环中显示

时间:2012-09-30 作者:Pollux Khafra

我在使用时遇到了一个奇怪的问题Infinite Scroll 对于WP_Query 在我的主页上循环。有一半时间,当第二页打开时,我会在第二集中看到一些重复的帖子。我找不到发生这种情况的模式,所以我正在寻找一种更好的方法来告诉无限滚动脚本要获取哪些帖子。以下是我们正在查看的内容。

   <?php
     global $wp_query;
     $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
     $args = array(
        \'meta_key\' => \'hotness\',
        \'orderby\' => \'meta_value_num\',
        \'order\' => \'DESC\',
        \'cat\' => -1,
        \'posts_per_page\' => 40,
        \'post_type\' => array( \'post\',\'fod_videos\',\'fod_music\',\'fod_articles\', \'fod_albums\'  ),
        \'paged\' => $paged
     );
    $wp_query = new WP_Query( $args );
    while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
     <?php get_template_part( \'loop\', \'contents\' ); ?>
    <?php endwhile; ?>
<?php if ( $wp_query->max_num_pages > 1 ) : ?>
 <div class="infinitescroll">
   <?php next_posts_link( __( \'Load more posts\' ) ); ?>
 </div>
<script type="text/javascript">
var href = \'first\';
$(document).ready(function() {
    $(\'#boxes\').infinitescroll({
        loading: {
          finished: undefined,
          finishedMsg: \'\',
          img: \'\',
          msgText: \'\',
          speed: \'fast\',
          start: undefined
        },
        navSelector: \'.infinitescroll\',
        nextSelector: \'.infinitescroll a\',
        itemSelector: \'#boxes .box\',
        debug: false
    }, function(arrayOfNewElems) {
       var $newElems = $( arrayOfNewElems ).css({opacity: 0});
       $newElems.imagesLoaded(function(){
        $newElems.animate({opacity: 1});
        $(\'#boxes\').masonry(\'appended\', $newElems, true);
        if(href != $(\'.infinitescroll a\').attr(\'href\')) {
            href = $(\'.infinitescroll a\').attr(\'href\');
        }
      });
    });
});
</script>
<?php endif; ?>
你知道罪魁祸首是什么吗?或者有更好的方法吗?

更新:查看源代码并单击指向第2页的链接,显示其中的副本与脚本无关,因为它是我的pagination 因为某种原因被关闭了。

好像要移除

        \'meta_key\' => \'hotness\',
        \'orderby\' => \'meta_value_num\',
        \'order\' => \'DESC\',
它正确分页(“似乎”)。所以我在想,分页可能无法识别按元键排序?

问题似乎是当页面在“热度”值为0的帖子处断开时。不知道为什么。

1 个回复
SO网友:Jamie

我从未见过这样的自定义循环,你应该尝试摆脱

<?php get_template_part( \'loop\', \'contents\' ); ?>
并将其替换为

 the_content();

结束