Taxonomy: No, really, don't pass results of 'count' query through 'get_terms' filter.
[37623] used the wrong parameter name (count=true instead of fields=count). For greater flexibility and forward compatibility with other potential changes to the return value of `get_terms()`, we now do a looser check: any non-array value is excluded from the filter. Fixes #36992. git-svn-id: https://develop.svn.wordpress.org/trunk@37634 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
91859d2098
commit
a77ffd8e83
@ -1209,7 +1209,7 @@ function get_terms( $args = array(), $deprecated = '' ) {
|
||||
$terms = $term_query->query( $args );
|
||||
|
||||
// Count queries are not filtered, for legacy reasons.
|
||||
if ( $term_query->query_vars['count'] ) {
|
||||
if ( ! is_array( $terms ) ) {
|
||||
return $terms;
|
||||
}
|
||||
|
||||
|
@ -2183,12 +2183,12 @@ class Tests_Term_getTerms extends WP_UnitTestCase {
|
||||
* @ticket 36992
|
||||
* @ticket 35381
|
||||
*/
|
||||
public function test_count_should_pass_through_main_get_terms_filter() {
|
||||
public function test_count_should_not_pass_through_main_get_terms_filter() {
|
||||
add_filter( 'get_terms', array( __CLASS__, 'maybe_filter_count' ) );
|
||||
|
||||
$found = get_terms( array(
|
||||
'hide_empty' => 0,
|
||||
'count' => true,
|
||||
'fields' => 'count',
|
||||
) );
|
||||
|
||||
remove_filter( 'get_terms', array( __CLASS__, 'maybe_filter_count' ) );
|
||||
|
Loading…
Reference in New Issue
Block a user