From 50068ee5b935a996e74aac6f31e0804522fc6516 Mon Sep 17 00:00:00 2001 From: Boone Gorges Date: Fri, 15 Jan 2016 19:47:17 +0000 Subject: [PATCH] Respect custom pagination params when using `wp_list_comments()` in a query loop. [36157] fixed a problem, introduced in 4.4, that caused custom pagination parameters passed to `wp_list_comments()`. However, the fix introduced in that changeset was limited to the `is_singular()` context, so that the bug remained when `wp_list_comments()` is used within a non-singular `WP_Query` loop. We fix this by removing the `is_singular()` check and using the more general `get_the_ID()` to identify the correct post_id to use for the secondary comment query. Fixes #35402. git-svn-id: https://develop.svn.wordpress.org/trunk@36324 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/comment-template.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/wp-includes/comment-template.php b/src/wp-includes/comment-template.php index 07e6a0f9c6..efb6285bae 100644 --- a/src/wp-includes/comment-template.php +++ b/src/wp-includes/comment-template.php @@ -1926,7 +1926,7 @@ function wp_list_comments( $args = array(), $comments = null ) { * If 'page' or 'per_page' has been passed, and does not match what's in $wp_query, * perform a separate comment query and allow Walker_Comment to paginate. */ - if ( is_singular() && ( $r['page'] || $r['per_page'] ) ) { + if ( $r['page'] || $r['per_page'] ) { $current_cpage = get_query_var( 'cpage' ); if ( ! $current_cpage ) { $current_cpage = 'newest' === get_option( 'default_comments_page' ) ? 1 : $wp_query->max_num_comment_pages; @@ -1934,8 +1934,9 @@ function wp_list_comments( $args = array(), $comments = null ) { $current_per_page = get_query_var( 'comments_per_page' ); if ( $r['page'] != $current_cpage || $r['per_page'] != $current_per_page ) { + $comments = get_comments( array( - 'post_id' => get_queried_object_id(), + 'post_id' => get_the_ID(), 'orderby' => 'comment_date_gmt', 'order' => 'ASC', 'status' => 'all',