diff --git a/src/wp-includes/class-wp-term-query.php b/src/wp-includes/class-wp-term-query.php index 45d45927a0..8ff0028ecf 100644 --- a/src/wp-includes/class-wp-term-query.php +++ b/src/wp-includes/class-wp-term-query.php @@ -457,6 +457,14 @@ class WP_Term_Query { "tt.taxonomy IN ('" . implode( "', '", array_map( 'esc_sql', $taxonomies ) ) . "')"; } + if ( empty( $args['exclude'] ) ) { + $args['exclude'] = array(); + } + + if ( empty( $args['include'] ) ) { + $args['include'] = array(); + } + $exclude = $args['exclude']; $exclude_tree = $args['exclude_tree']; $include = $args['include']; diff --git a/tests/phpunit/tests/term/getTerms.php b/tests/phpunit/tests/term/getTerms.php index b1901886a8..41f6758045 100644 --- a/tests/phpunit/tests/term/getTerms.php +++ b/tests/phpunit/tests/term/getTerms.php @@ -3146,6 +3146,76 @@ class Tests_Term_getTerms extends WP_UnitTestCase { 'term_taxonomy_id' => array(), ), ), + 'array exclude vs no exclude' => array( + array( + 'taxonomy' => self::$taxonomy, + 'fields' => 'ids', + ), + array( + 'taxonomy' => self::$taxonomy, + 'fields' => 'all', + 'exclude' => array(), + ), + ), + 'array exclude vs zero exclude' => array( + array( + 'taxonomy' => self::$taxonomy, + 'fields' => 'ids', + 'exclude' => 0, + ), + array( + 'taxonomy' => self::$taxonomy, + 'fields' => 'all', + 'exclude' => array(), + ), + ), + 'array exclude vs string exclude' => array( + array( + 'taxonomy' => self::$taxonomy, + 'fields' => 'ids', + 'exclude' => '', + ), + array( + 'taxonomy' => self::$taxonomy, + 'fields' => 'all', + 'exclude' => array(), + ), + ), + 'array include vs no include' => array( + array( + 'taxonomy' => self::$taxonomy, + 'fields' => 'ids', + ), + array( + 'taxonomy' => self::$taxonomy, + 'fields' => 'all', + 'include' => array(), + ), + ), + 'array include vs zero include' => array( + array( + 'taxonomy' => self::$taxonomy, + 'fields' => 'ids', + 'include' => 0, + ), + array( + 'taxonomy' => self::$taxonomy, + 'fields' => 'all', + 'include' => array(), + ), + ), + 'array include vs string include' => array( + array( + 'taxonomy' => self::$taxonomy, + 'fields' => 'ids', + 'include' => '', + ), + array( + 'taxonomy' => self::$taxonomy, + 'fields' => 'all', + 'include' => array(), + ), + ), 'array 1 slug vs string slug' => array( array( 'taxonomy' => self::$taxonomy,