无限滚动pathParse反向的WordPress评论(Infinite Scroll pathPa

2019-09-19 05:50发布

我使用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%肯定这是否会有所帮助。

我(和许多其他人的),将是任何帮助,您可以给超级激赏。

Answer 1:

以为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的设置>讨论为默认值。



Answer 2:

该插件获取下一个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--;


Answer 3:

我似乎已经想出了一个(不完全优雅)解决了这个问题。

非常感谢@ 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);


文章来源: Infinite Scroll pathParse for reverse WordPress Comments