我正在创建一个无限卷轴(wordpress帖子)。 如果您看到第一行书就是这一本:
但如果向下滚动,在“加载更多图书”之后,则会再次显示此图书。
所以它总是从头开始加载书籍(wordpress帖子),而不是连续加载帖子。
图书主页效果很好,您可以看到[这里] [3]。
在输入任何书籍(single.php)
后,问题是知道问题在哪里,我该如何解决?
这是我正在使用的代码:
<div id="infinite-scroll">
<div id="infite-activities">
<div class="row">
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array("post_type"=>"books","posts_per_page"=>"12");
/* $args["paged"]=( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1; */
$args["paged"]=$paged;
if(is_single())
$args["orderby"]="date";
$books=new WP_Query($args);
while($books->have_posts()):$books->the_post();?>
<div class="col-lg-3 col-md-3 col-xs-12 col-sm-3">
<div class="book-grid-img">
<?php $default_attr = array('class' => "img-responsive");?>
<a href="<?php the_permalink();?>" title="<?php the_title();?>"> <?php the_post_thumbnail("books-grid",$default_attr);?></a>
</div>
<div class="box-desc-book">
<div class="book-title">
<?php the_title();?>
<span><?php the_field("autor");?></span>
</div>
</div>
<div class="book-download">
<a href="<?php the_permalink();?>">MORE INFO</a>
</div>
</div>
<?php endwhile;?>
<div class="pagination">
<?php
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('page') ),
'prev_text' => __('« Previous'),
'next_text' => __('Next »'),
'total' => $books->max_num_pages
) );
?>
</div>
</div>
<script>
jQuery('#infinite-scroll').infinitescroll({
loading: {
finishedMsg: "<em>No more books.</em>",
msgText: "<em>Loading more books</em>"
},
navSelector : "a.next",
nextSelector : "a.next",
itemSelector : "#infite-activities",
debug : true,
dataType : 'html',
maxPage : 5,
path: function(index) {
return "page/" + index + "/?test=1";
}
}, function(newElements, data, url){
});
</script>
答案 0 :(得分:0)
您需要在wp_query中偏移您的参数。这告诉查询从比平时更晚的位置开始。偏移量应该是$ paged * $ per_page
的变量$args=array(
"post_type"=>"books",
"posts_per_page"=>"12",
"offset" => "24" // or whatever (page * per_page) is equal to
);
答案 1 :(得分:0)
我相信它是你的分页(不是你正在打印的那个)和你正在调用的无限滚动JavaScript的梳子。它适用于主页,因为您正在执行的ajax请求是这样请求:
http://www.example.com/resources/books/page/3/?test=1
然而,一旦你到达内页,请求就会变成这样的东西:
http://www.example.com/books/many-molts-muchos/page/2/?test=1
所以你可以看到你不是要求资源/书籍/区域,而是要书籍/很多 - 很多 - 这可能会使你的分页混乱。尝试更新路径返回函数..
FROM:
return "page/" + index + "/?test=1";
TO:
return "<?php echo get_site_url(); ?>/resources/books/page/" + index + "/?test=1";
你也可以放弃&#34;?测试&#34;所以看起来更像是:
return "<?php echo get_site_url(); ?>resources/books/page/" + index;