我已经在single.php文件上创建了一个快速分页,以便在页面底部的循环中使用无限滚动。这是我用来创建我的' nextSelector'和' navSelector'对于无限滚动:
<?php
$next_url = $_SERVER['REQUEST_URI'].'2';
?>
<ul class="single-pagination">
<li><a class="next pagination-item" href="<?php echo $next_url; ?>/">Next</a></li>
</ul><!--single-pagination-->
这很好用,因为它创造了下一个&#39;页面开始无限滚动。无限卷轴中的navSelector
为ul.single-pagination
,nextSelector
为a.next.pagination-item
。这一切在大多数页面上都能正常工作,但是当我访问URL末尾有一个数字的页面时,无限滚动会更改数字而不是更改URL上的附加数字。例如,如果我有这样的URL:
http://www.example.com/this-post-2/
它将成功加载无限滚动的第一次迭代,即:
http://www.example.com/this-post-2/2/
然后在下一次迭代中会在此URL上抛出404错误:
http://www.example.com/this-post-3/2/
虽然它应该寻找:
http://www.example.com/this-post-2/3/
如果没有拆分无限滚动的JS代码,有没有办法自定义无限滚动查找的URL?
这与更改URL的jquery.infinitescroll.min.js中的RegEx表达式有关。这是我正在改变的代码。如果没有人打败我,我会在这里发布答案:
t = t.match(/^(.*?)\b2\b(.*?$)/).slice(1);
答案 0 :(得分:0)
对此的解决方案在于jquery.infinitescroll.js(或jquery.infinitescroll.min.js文件)。作者在此使用的RegEx没有考虑这些类型的URL。
我在我的GitHub帐户中创建了一个代码分支,可以在这里访问:
https://github.com/MillerMedia/infinite-scroll
基本上,这是一个RegEx表达式:
t = t.match(/^(.*?2)\b2\b(.*?$)/).slice(1);
放在这个之前:
t = t.match(/^(.*?)\b2\b(.*?$)/).slice(1);