如何检查评论是否分页?

时间:2016-07-01 作者:henrywright

我试图确定是否有超过一页的评论。php。

存档中。php我可以这样做来检查是否有多个页面的帖子:

if ( $wp_query->max_num_pages > 1 ) { 
    // There\'s more than one page of posts in this archive.
}
据我所知,这对评论不起作用。如何检查注释是否分页为单页。php?

3 个回复
最合适的回答,由SO网友:birgire 整理而成

只是一些用于主评论查询的附加信息:

既然你提到了全球$wp_query 对象,我们可以看到它存储:

$wp_query->max_num_comment_pages = $comment_query->max_num_pages;
在注释模板的主注释查询中。

那里exists a wrapper 为此,即:

get_comment_pages_count(); 
这在主注释查询之后可用。

如果在主注释查询运行之前需要它,那么我们可以检查get_comments_number( $post_id ) 大于get_option( \'comments_per_page\' ). 但我们应该记住comments_per_page 可通过修改参数,例如comments_template_query_args 滤器

SO网友:Ismail

试试这个,get_option( \'page_comments\' ) 将检查是否在选项>讨论中选中分页,然后比较每页的注释(get_query_var( \'comments_per_page\' )) 当前帖子的总评论数(计数):

function wpse231229_is_paginate_comments( $post_id = 0 ) {
    return get_option( \'page_comments\' )  && ( $pagi = (int) get_query_var( \'comments_per_page\' ) ) && wp_count_comments( $post_id )->total_comments > $pagi;
}
同时,获取当前页面的评论(例如comment-page-1 在URL..)中,使用(int) get_query_var( \'cpage\' )

希望这有帮助。

SO网友:henrywright

一种方法是使用cpage 查询变量:

if ( ! empty( get_query_var( \'cpage\' ) ) ) {
    // There is more than one page of comments.
}