WordPress.org

Make WordPress Core

Ticket #21760: 21760.3.patch

File 21760.3.patch, 1.1 KB (added by spacedmonkey, 4 years ago)
  • src/wp-includes/taxonomy.php

     
    934934                return false;
    935935        }
    936936
     937        $key          = md5( serialize( array( $field, $value, $taxonomy ) ) );
     938        $last_changed = wp_cache_get( 'last_changed', 'terms' );
     939        if ( ! $last_changed ) {
     940                $last_changed = microtime();
     941                wp_cache_set( 'last_changed', $last_changed, 'terms' );
     942        }
     943        $cache_key = "get_term_by:$key:$last_changed";
     944        $cache     = wp_cache_get( $cache_key, 'terms' );
     945        if ( false !== $cache ) {
     946                $term = get_term( (int) $cache, $taxonomy, $output, $filter );
     947                if ( is_wp_error( $term ) || is_null( $term ) ) {
     948                        $term = false;
     949                }
     950
     951                return $term;
     952        }
     953
    937954        $tax_clause = $wpdb->prepare( "AND tt.taxonomy = %s", $taxonomy );
    938955
    939956        if ( 'slug' == $field ) {
     
    969986        }
    970987
    971988        wp_cache_add( $term->term_id, $term, 'terms' );
     989        wp_cache_add( $cache_key, $term->term_id, 'terms' );
    972990
    973991        return get_term( $term, $taxonomy, $output, $filter );
    974992}