Support an empty string passed as a status in WP_Comment_Query
.
The changes in [30084] broke backward compatibility with interfaces that manually passed an empty string for the value of 'status', such as on wp-admin/edit-comments.php. Fixes #29612. git-svn-id: https://develop.svn.wordpress.org/trunk@30093 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
ed19e5a1f3
commit
555d7347f9
@ -355,9 +355,6 @@ class WP_Comment_Query {
|
||||
$statuses = preg_split( '/[\s,]+/', $statuses );
|
||||
}
|
||||
|
||||
// Remove empty statuses.
|
||||
$statuses = array_filter( $statuses );
|
||||
|
||||
// 'any' overrides other statuses.
|
||||
if ( ! in_array( 'any', $statuses ) ) {
|
||||
foreach ( $statuses as $status ) {
|
||||
@ -371,6 +368,7 @@ class WP_Comment_Query {
|
||||
break;
|
||||
|
||||
case 'all' :
|
||||
case '' :
|
||||
$status_clauses[] = "( comment_approved = '0' OR comment_approved = '1' )";
|
||||
break;
|
||||
|
||||
|
@ -15,6 +15,23 @@ class Tests_Comment_Query extends WP_UnitTestCase {
|
||||
$this->post_id = $this->factory->post->create();
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 29612
|
||||
*/
|
||||
public function test_status_empty_string() {
|
||||
$c1 = $this->factory->comment->create( array( 'comment_post_ID' => $this->post_id, 'comment_approved' => '1' ) );
|
||||
$c2 = $this->factory->comment->create( array( 'comment_post_ID' => $this->post_id, 'comment_approved' => '0' ) );
|
||||
$c3 = $this->factory->comment->create( array( 'comment_post_ID' => $this->post_id, 'comment_approved' => 'spam' ) );
|
||||
|
||||
$q = new WP_Comment_Query();
|
||||
$found = $q->query( array(
|
||||
'status' => '',
|
||||
'fields' => 'ids',
|
||||
) );
|
||||
|
||||
$this->assertEqualSets( array( $c1, $c2 ), $found );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 21101
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user