我使用jQuery的无限滚动的插件- https://github.com/paulirish/infinite-scroll/显示我的分页的WordPress评论。
从旧查看评论时,新的(我认为这是默认选项),但如果在WordPress中讨论选项设置为以下插件正常工作:
Break comments into pages with [XX] top level comments per page and the
[LAST] page displayed by default
Comments should be displayed with the [NEWER] comments at the top of each page
然后无限滚动不再起作用。
展望问题,这似乎是因为如果设置如上,那么第一个评论页面,WordPress会显示是最后一个,所以即
WordPress 1st comment page displayed = http://MYLINK/comment-page-5
WordPress 2nd comment page displayed = http://MYLINK/comment-page-4
WordPress 3rd comment page displayed = http://MYLINK/comment-page-3
等等
但是,我觉得无限滚动想要增加每一页,所以之后的第一页显示(实际上第5页),然后无限滚动正在寻找第6页,它不存在。
通过IS的选择看,有一个pathParse选择-但没有文件,说明如何使用它。 我甚至100%肯定这是否会有所帮助。
我(和许多其他人的),将是任何帮助,您可以给超级激赏。
以为ID芯片在这里与一个简单的解决方案。 不要试图改变插件,我发现它更容易,(天,并试图天后)逆转评论阵列。 只需添加到您的functions.php(来源来自这里 )
if (!function_exists('iweb_reverse_comments')) {
function iweb_reverse_comments($comments) {
return array_reverse($comments);
}
}
add_filter ('comments_array', 'iweb_reverse_comments');
这样,infinitescroll JS可以保持它的方式。 另外,您刚刚离开的WordPress的设置>讨论为默认值。
该插件获取下一个URL从加载div.navigation a:first
选择。 这样做的href属性的路径转化为下一个页面Ajax请求传递。 尝试jQuery选择了控制台,看看它有出现; 那么你既可以改变插件改写选择,或者改变你的HTML,以便选择得到正确的匹配。
尝试2
解析的问题是,因为编号的不是; 它正在寻找page=3
,你的链接是page-3
假设不能改变,但如你所说,你可以添加pathParse方法(添加这个,你已经在你的代码注释掉了类似的方法):
,pathParse:function(path,nextPage){
path = path.match(/page[-=]([0-9]*)/).slice(1);
return path;
}
然后,为了把它正确地将减小而不是增加,我可以看到,目前唯一的办法是改变线路493(在WP插件的开发版本)阅读
opts.state.currPage--;
我似乎已经想出了一个(不完全优雅)解决了这个问题。
非常感谢@ M1ke对他的帮助。
好,
所以,首先,你需要利用pathParse的功能,所以在这里你定义你的无限滚动的选项:
加入
.infinitescroll({
state: {
currPage: 4 // The number of the first comment page loaded, you can generate this number dynamically to save changing it manually
},
pathParse: function(path,nextPage){
path = ['comment-page-','#comments'];
return path;
}
});
然后,您需要调整的主要插件文件(jquery.infinitescroll.js或.min版本),因为它似乎没有任何其他方式来做到这一点。 因此,找到以下部分:
// increment the URL bit. e.g. /page/3/
opts.state.currPage++;
而改变
// decrement the URL bit. e.g. /page/3/
if (opts.state.currPage > 1) {
opts.state.currPage--;
}
else if (opts.state.currPage == 1) {
console.log("Last Page"); // Just needed for debugging
opts.state.currPage = 999999; // stop IS from loading Comment Page 0 by giving it a page number that won't exist and will return a '404' to provide 'end' function.
}
此外,请确保以下部分:
this._debug('pathParse manual');
return opts.pathParse(path, this.options.state.currPage+1);
改为:
this._debug('pathParse manual');
return opts.pathParse(path, this.options.state.currPage);