mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-28 14:20:15 +00:00
Taxonomy: Increase cache hits in WP_Term_Query when using include and exclude parameters.
Ensure that empty values of include and exclude passed to the parameters of `WP_Term_Query`, reused existing caches by resetting values to an empty array. Props Spacedmonkey, peterwilsoncc, hellofromtonya. Follow-up to [52970]. See #55352. git-svn-id: https://develop.svn.wordpress.org/trunk@53309 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -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'];
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user