Fix 'count' in WP_Comment_Query
when using 'meta_query'.
Props heshiming, desaiuditd. Fixes #23369. git-svn-id: https://develop.svn.wordpress.org/trunk@30026 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
c429ba1bdd
commit
4482d000ba
@ -559,8 +559,11 @@ class WP_Comment_Query {
|
|||||||
$clauses = $this->meta_query->get_sql( 'comment', $wpdb->comments, 'comment_ID', $this );
|
$clauses = $this->meta_query->get_sql( 'comment', $wpdb->comments, 'comment_ID', $this );
|
||||||
$join .= $clauses['join'];
|
$join .= $clauses['join'];
|
||||||
$where .= $clauses['where'];
|
$where .= $clauses['where'];
|
||||||
|
|
||||||
|
if ( ! $this->query_vars['count'] ) {
|
||||||
$groupby = "{$wpdb->comments}.comment_ID";
|
$groupby = "{$wpdb->comments}.comment_ID";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$date_query = $this->query_vars['date_query'];
|
$date_query = $this->query_vars['date_query'];
|
||||||
if ( ! empty( $date_query ) && is_array( $date_query ) ) {
|
if ( ! empty( $date_query ) && is_array( $date_query ) ) {
|
||||||
|
@ -613,4 +613,40 @@ class Tests_Comment_Query extends WP_UnitTestCase {
|
|||||||
|
|
||||||
$this->assertNotContains( 'ORDER BY', $q->request );
|
$this->assertNotContains( 'ORDER BY', $q->request );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_count() {
|
||||||
|
$c1 = $this->factory->comment->create( array( 'comment_post_ID' => $this->post_id, 'user_id' => 7 ) );
|
||||||
|
$c2 = $this->factory->comment->create( array( 'comment_post_ID' => $this->post_id, 'user_id' => 7 ) );
|
||||||
|
|
||||||
|
$q = new WP_Comment_Query();
|
||||||
|
$found = $q->query( array(
|
||||||
|
'count' => true,
|
||||||
|
) );
|
||||||
|
|
||||||
|
$this->assertEquals( 2, $found );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 23369
|
||||||
|
*/
|
||||||
|
public function test_count_with_meta_query() {
|
||||||
|
$c1 = $this->factory->comment->create( array( 'comment_post_ID' => $this->post_id, 'user_id' => 7 ) );
|
||||||
|
$c2 = $this->factory->comment->create( array( 'comment_post_ID' => $this->post_id, 'user_id' => 7 ) );
|
||||||
|
$c3 = $this->factory->comment->create( array( 'comment_post_ID' => $this->post_id, 'user_id' => 7 ) );
|
||||||
|
add_comment_meta( $c1, 'foo', 'bar' );
|
||||||
|
add_comment_meta( $c3, 'foo', 'bar' );
|
||||||
|
|
||||||
|
$q = new WP_Comment_Query();
|
||||||
|
$found = $q->query( array(
|
||||||
|
'count' => true,
|
||||||
|
'meta_query' => array(
|
||||||
|
array(
|
||||||
|
'key' => 'foo',
|
||||||
|
'value' => 'bar',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
) );
|
||||||
|
|
||||||
|
$this->assertEquals( 2, $found );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user