diff --git a/src/wp-includes/comment.php b/src/wp-includes/comment.php index e2ed55386a..c5be35b13b 100644 --- a/src/wp-includes/comment.php +++ b/src/wp-includes/comment.php @@ -696,12 +696,12 @@ class WP_Comment_Query { // Parse comment IDs for an IN clause. if ( ! empty( $this->query_vars['comment__in'] ) ) { - $where[] = 'comment_ID IN ( ' . implode( ',', wp_parse_id_list( $this->query_vars['comment__in'] ) ) . ' )'; + $where[] = "$wpdb->comments.comment_ID IN ( " . implode( ',', wp_parse_id_list( $this->query_vars['comment__in'] ) ) . ' )'; } // Parse comment IDs for a NOT IN clause. if ( ! empty( $this->query_vars['comment__not_in'] ) ) { - $where[] = 'comment_ID NOT IN ( ' . implode( ',', wp_parse_id_list( $this->query_vars['comment__not_in'] ) ) . ' )'; + $where[] = "$wpdb->comments.comment_ID NOT IN ( " . implode( ',', wp_parse_id_list( $this->query_vars['comment__not_in'] ) ) . ' )'; } // Parse comment post IDs for an IN clause. diff --git a/tests/phpunit/tests/comment/query.php b/tests/phpunit/tests/comment/query.php index 19583105c0..0d7269c8f0 100644 --- a/tests/phpunit/tests/comment/query.php +++ b/tests/phpunit/tests/comment/query.php @@ -722,6 +722,53 @@ class Tests_Comment_Query extends WP_UnitTestCase { $this->assertEquals( array( $comments[2], $comments[0], $comments[1] ), $found ); } + /** + * @group 32081 + */ + public function test_meta_query_should_work_with_comment__in() { + $comments = $this->factory->comment->create_many( 3 ); + + add_comment_meta( $comments[0], 'foo', 'jjj' ); + add_comment_meta( $comments[1], 'foo', 'zzz' ); + add_comment_meta( $comments[2], 'foo', 'jjj' ); + + $q = new WP_Comment_Query( array( + 'comment__in' => array( $comments[1], $comments[2] ), + 'meta_query' => array( + array( + 'key' => 'foo', + 'value' => 'jjj', + ), + ), + 'fields' => 'ids', + ) ); + + $this->assertEquals( array( $comments[2] ), $q->get_comments() ); + } + + /** + * @group 32081 + */ + public function test_meta_query_should_work_with_comment__not_in() { + $comments = $this->factory->comment->create_many( 3 ); + + add_comment_meta( $comments[0], 'foo', 'jjj' ); + add_comment_meta( $comments[1], 'foo', 'zzz' ); + add_comment_meta( $comments[2], 'foo', 'jjj' ); + + $q = new WP_Comment_Query( array( + 'comment__not_in' => array( $comments[1], $comments[2] ), + 'meta_query' => array( + array( + 'key' => 'foo', + 'value' => 'jjj', + ), + ), + 'fields' => 'ids', + ) ); + + $this->assertEquals( array( $comments[0] ), $q->get_comments() ); + } /** * @ticket 27064