Make WordPress Core


Ignore:
Timestamp:
10/10/2015 01:58:37 AM (9 years ago)
Author:
boonebgorges
Message:

Introduce WP_Term.

get_term() now returns a WP_Term object, instead of a stdClass object.
Cache support and sanitization filters for individual terms are now more
centralized. For example, get_term_by() is able to cast results of its query
to a WP_Term object by passing it through get_term().

The $taxonomy parameter for get_term() is now optional, as terms ought to
be unique to a taxonomy (ie, shared terms no longer exist). In cases where
get_term() detects that the term matching the specified term_id is from the
wrong taxonomy, it checks to see if you've requested a shared term, and if so,
it splits the term. This is used only for fallback purposes.

The elimination of shared terms allows the caching strategy for terms to be
simplified. Individual terms are now cached in a single 'terms' bucket.

Props flixos90, boonebgorges, scribu, dipesh.kakadiya.
See #14162.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/term/cache.php

    r30954 r34997  
    104104
    105105        $term_object = get_term( $term, 'wptests_tax' );
    106         wp_cache_delete( $term, 'wptests_tax' );
     106        wp_cache_delete( $term, 'terms' );
    107107
    108108        // Affirm that the cache is empty.
    109         $this->assertEmpty( wp_cache_get( $term, 'wptests_tax' ) );
     109        $this->assertEmpty( wp_cache_get( $term, 'terms' ) );
    110110
    111111        $num_queries = $wpdb->num_queries;
     
    129129        ) );
    130130
    131         wp_cache_delete( $term, 'wptests_tax' );
     131        wp_cache_delete( $term, 'terms' );
    132132
    133133        // Affirm that the cache is empty.
    134         $this->assertEmpty( wp_cache_get( $term, 'wptests_tax' ) );
     134        $this->assertEmpty( wp_cache_get( $term, 'terms' ) );
    135135
    136136        $num_queries = $wpdb->num_queries;
     
    138138        // Prime cache.
    139139        $term_object = get_term( $term, 'wptests_tax' );
    140         $this->assertNotEmpty( wp_cache_get( $term, 'wptests_tax' ) );
     140        $this->assertNotEmpty( wp_cache_get( $term, 'terms' ) );
    141141        $this->assertSame( $num_queries + 1, $wpdb->num_queries );
    142142
     
    156156        ) );
    157157
    158         wp_cache_delete( $term, 'wptests_tax' );
     158        wp_cache_delete( $term, 'terms' );
    159159
    160160        // Affirm that the cache is empty.
    161         $this->assertEmpty( wp_cache_get( $term, 'wptests_tax' ) );
     161        $this->assertEmpty( wp_cache_get( $term, 'terms' ) );
    162162
    163163        $num_queries = $wpdb->num_queries;
     
    165165        // Prime cache.
    166166        $term_object = get_term_by( 'id', $term, 'wptests_tax' );
    167         $this->assertNotEmpty( wp_cache_get( $term, 'wptests_tax' ) );
     167        $this->assertNotEmpty( wp_cache_get( $term, 'terms' ) );
    168168        $this->assertSame( $num_queries + 1, $wpdb->num_queries );
    169169
Note: See TracChangeset for help on using the changeset viewer.