我正在想办法如何翻转评论的分页。
i.) 目前,我已将管理设置设置为显示;将评论分成多个页面,每页有 5 顶级评论,并且默认显示第一个页面 评论应与每页顶部的较新评论一起显示
但是,上面的分页显示的是每个页面最新 -> 最旧的评论。例如,第一页将有评论 06/30/2010 -> 06/29/2010 ...第 20 页将显示 11/7/2017 -> 08/7/2017
我的问题是如何翻转分页,以便第 20 页是第 1 页,第 1 页是第 20 页,因为第 1 页比第 20 页旧得多?
我尝试了以下方法,但这只会翻转每个页面上的评论;
function wpb_reverse_comments($comments) {
return array_reverse($comments);
}
add_filter ('comments_array', 'wpb_reverse_comments');
这是一个可悲的老问题,显示“旧”评论的“设置>讨论”选项是指每个页面中的评论顺序,而不是评论的一般顺序。
从设置中,唯一的方法是将默认评论页面设置为最后一个。但是像这样,当您看到最后一页时,您的评论通常比“每页评论”设置要少。
我设法解决此问题的唯一工作方法是使用 comments_template_query_args 过滤器
add_filter('comments_template_query_args', function($comment_args) {
$comment_args['order'] = 'DESC';
return $comment_args;
});
所示
这才是真正对我有用的
add_action('pre_get_comments', function($query) {
if ( !is_admin()) {
$query->query_vars['order'] = 'DESC';
}
});
拦截
comments_template_query_args
仍然不起作用,因为分页排序很混乱。
其实,你不需要触动反转评论顺序的代码,只需访问WordPress菜单选项:“设置>讨论”,并修改属性:
评论应在每页顶部显示“旧”评论。
勾选复选框:将评论分成页面,每页包含“20”个顶级评论,默认显示“first”页面。
仅此而已。