diff --git a/src/wp-includes/user.php b/src/wp-includes/user.php index b9b50dd485..5a9dc466ac 100644 --- a/src/wp-includes/user.php +++ b/src/wp-includes/user.php @@ -665,7 +665,9 @@ class WP_User_Query { $cap_meta_query['compare'] = 'like'; } - $qv['meta_query'][] = $cap_meta_query; + if ( empty( $qv['meta_query'] ) || ! in_array( $cap_meta_query, $qv['meta_query'], true ) ) { + $qv['meta_query'][] = $cap_meta_query; + } } $meta_query = new WP_Meta_Query(); diff --git a/tests/phpunit/tests/user/query.php b/tests/phpunit/tests/user/query.php index 51bcfeebe7..69c260a752 100644 --- a/tests/phpunit/tests/user/query.php +++ b/tests/phpunit/tests/user/query.php @@ -101,6 +101,9 @@ class Tests_User_Query extends WP_UnitTestCase { $this->assertEquals( $names, $values ); } + /** + * @ticket 21119 + */ function test_prepare_query() { $query = new WP_User_Query(); $this->assertEmpty( $query->query_fields );