| 1558 | // $args can be whatever, only use the args defined in defaults to compute the key |
| 1559 | $filter_key = ( has_filter('list_terms_exclusions') ) ? serialize($GLOBALS['wp_filter']['list_terms_exclusions']) : ''; |
| 1560 | $key = md5( $query . $filter_key ); |
| 1561 | $last_changed = wp_cache_get( 'last_changed', 'terms' ); |
| 1562 | if ( ! $last_changed ) { |
| 1563 | $last_changed = microtime(); |
| 1564 | wp_cache_set( 'last_changed', $last_changed, 'terms' ); |
| 1565 | } |
| 1566 | $cache_key = "get_terms:$key:$last_changed"; |
| 1567 | $cache = wp_cache_get( $cache_key, 'terms' ); |
| 1568 | if ( false !== $cache ) { |
| 1569 | |
| 1570 | /** |
| 1571 | * Filter the given taxonomy's terms cache. |
| 1572 | * |
| 1573 | * @since 2.3.0 |
| 1574 | * |
| 1575 | * @param array $cache Cached array of terms for the given taxonomy. |
| 1576 | * @param string|array $taxonomies A taxonomy or array of taxonomies. |
| 1577 | * @param array $args An array of arguments to get terms. |
| 1578 | */ |
| 1579 | $cache = apply_filters( 'get_terms', $cache, $taxonomies, $args ); |
| 1580 | return $cache; |
| 1581 | } |
| 1582 | |