Ensure that get_terms() can accept querystring-style arguments.

Prior to [37572], arguments passed to `get_terms()` were passed immediately
through `wp_parse_args()`, which made it possible to pass arguments as a
querystring (`hide_empty=0`) rather than an array
(`array( 'hide_empty' => false )`). [37572] moved default argument parsing
into `WP_Term_Query`, while assuming that arguments passed to `get_terms()`
would be formatted as an array.

To provide compatibility, we now parse all args passed to `get_terms()` into
an array before processing.

See #35381.

git-svn-id: https://develop.svn.wordpress.org/trunk@37599 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Boone Gorges
2016-05-31 12:53:27 +00:00
parent dd472b7d2e
commit 9b19a33952
2 changed files with 34 additions and 4 deletions
+26
View File
@@ -28,6 +28,32 @@ class Tests_Term_getTerms extends WP_UnitTestCase {
$this->assertEqualSets( array( $term ), $found );
}
/**
* @ticket 35495
* @ticket 35381
*/
public function test_legacy_params_as_query_string_should_be_properly_parsed() {
register_taxonomy( 'wptests_tax', 'post' );
$term = self::factory()->term->create( array( 'taxonomy' => 'wptests_tax' ) );
$found = get_terms( 'wptests_tax', 'hide_empty=0&fields=ids&update_term_meta_cache=0' );
$this->assertEqualSets( array( $term ), $found );
}
/**
* @ticket 35495
* @ticket 35381
*/
public function test_new_params_as_query_string_should_be_properly_parsed() {
register_taxonomy( 'wptests_tax', 'post' );
$term = self::factory()->term->create( array( 'taxonomy' => 'wptests_tax' ) );
$found = get_terms( 'taxonomy=wptests_tax&hide_empty=0&fields=ids&update_term_meta_cache=0' );
$this->assertEqualSets( array( $term ), $found );
}
/**
* @ticket 35495
*/