| 1329 | // $args can be whatever, only use the args defined in defaults to compute the key |
| 1330 | $filter_key = ( has_filter('list_terms_exclusions') ) ? serialize($GLOBALS['wp_filter']['list_terms_exclusions']) : ''; |
| 1331 | $key = md5( serialize( wp_array_slice_assoc( $args, array_keys( $defaults ) ) ) . serialize( $taxonomies ) . $filter_key ); |
| 1332 | $last_changed = wp_cache_get( 'last_changed', 'terms' ); |
| 1333 | if ( ! $last_changed ) { |
| 1334 | $last_changed = microtime(); |
| 1335 | wp_cache_set( 'last_changed', $last_changed, 'terms' ); |
| 1336 | } |
| 1337 | $cache_key = "get_terms:$key:$last_changed"; |
| 1338 | $cache = wp_cache_get( $cache_key, 'terms' ); |
| 1339 | if ( false !== $cache ) { |
| 1340 | |
| 1341 | /** |
| 1342 | * Filter the given taxonomy's terms cache. |
| 1343 | * |
| 1344 | * @since 2.3.0 |
| 1345 | * |
| 1346 | * @param array $cache Cached array of terms for the given taxonomy. |
| 1347 | * @param string|array $taxonomies A taxonomy or array of taxonomies. |
| 1348 | * @param array $args An array of arguments to get terms. |
| 1349 | */ |
| 1350 | $cache = apply_filters( 'get_terms', $cache, $taxonomies, $args ); |
| 1351 | return $cache; |
| 1352 | } |
| 1353 | |
1533 | | // $args can be whatever, only use the args defined in defaults to compute the key |
1534 | | $filter_key = ( has_filter('list_terms_exclusions') ) ? serialize($GLOBALS['wp_filter']['list_terms_exclusions']) : ''; |
1535 | | $key = md5( $query . $filter_key ); |
1536 | | $last_changed = wp_cache_get( 'last_changed', 'terms' ); |
1537 | | if ( ! $last_changed ) { |
1538 | | $last_changed = microtime(); |
1539 | | wp_cache_set( 'last_changed', $last_changed, 'terms' ); |
1540 | | } |
1541 | | $cache_key = "get_terms:$key:$last_changed"; |
1542 | | $cache = wp_cache_get( $cache_key, 'terms' ); |
1543 | | if ( false !== $cache ) { |
1544 | | |
1545 | | /** |
1546 | | * Filter the given taxonomy's terms cache. |
1547 | | * |
1548 | | * @since 2.3.0 |
1549 | | * |
1550 | | * @param array $cache Cached array of terms for the given taxonomy. |
1551 | | * @param string|array $taxonomies A taxonomy or array of taxonomies. |
1552 | | * @param array $args An array of arguments to get terms. |
1553 | | */ |
1554 | | $cache = apply_filters( 'get_terms', $cache, $taxonomies, $args ); |
1555 | | return $cache; |
1556 | | } |
1557 | | |