私はsingle.phpに複数ページのコメントがあるかどうかを判断しようとしています。
Archive.phpでは、私はこのようなことをして、複数ページの投稿があるかどうかをチェックすることができます。
if ( $wp_query->max_num_pages > 1 ) {
// There's more than one page of posts in this archive.
}
私が言うことができる限り、これはコメントには機能しません。コメントがsingle.phpでページ分割されているかどうかをどうやって確認できますか?
メインコメントクエリに関する追加情報がいくつかあります。
グローバルな$wp_query
オブジェクトについて言及したので、それが格納されていることがわかります。
$wp_query->max_num_comment_pages = $comment_query->max_num_pages;
コメントテンプレートのメインのコメントクエリで。
これには、 ラッパー があります。
get_comment_pages_count();
これはメインのコメントクエリの後に利用可能です。
メインのコメントクエリが実行される前にそれが必要な場合は、get_comments_number( $post_id )
がget_option( 'comments_per_page' )
よりも大きいかどうかをチェックします。しかし、comments_per_page
パラメータは、次のように変更することができます。 comments_template_query_args
フィルタ.
試してみてください。get_option( 'page_comments' )
はoptions> discussionでページネーションがチェックされているかどうかチェックし、それからページごとのコメント(get_query_var( 'comments_per_page' )
)を現在の投稿の総コメント(count)と比較します:
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;
}
また、現在のページのコメント(URLのcomment-page-1
など)を取得するには、(int) get_query_var( 'cpage' )
を使用します。
それが役立つことを願っています。
1つの方法は、cpage
クエリ変数を使用することです。
if ( ! empty( get_query_var( 'cpage' ) ) ) {
// There is more than one page of comments.
}