Make WordPress Core


Ignore:
Timestamp:
09/25/2015 03:58:59 AM (9 years ago)
Author:
boonebgorges
Message:

Introduce metadata for taxonomy terms.

Adds a new table to the database schema (wp_termmeta), and a set of
*_term_meta() API functions. get_terms() and wp_get_object_terms()
now also support 'meta_query' parameters, with syntax identical to other
uses of WP_Meta_Query.

When fetching terms via get_terms() or wp_get_object_terms(), metadata for
matched terms is preloaded into the cache by default. Disable this behavior
by setting the new $update_term_meta_cache paramater to false.

To maximize performance, within WP_Query loops, the termmeta cache is *not*
primed by default. Instead, we use a lazy-loading technique: metadata for all
terms belonging to posts in the loop is loaded into the cache the first time
that get_term_meta() is called within the loop.

Props boonebgorges, sirzooro.
See #10142.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/wp-db.php

    r34478 r34529  
    267267     */
    268268    var $tables = array( 'posts', 'comments', 'links', 'options', 'postmeta',
    269         'terms', 'term_taxonomy', 'term_relationships', 'commentmeta' );
     269        'terms', 'term_taxonomy', 'term_relationships', 'termmeta', 'commentmeta' );
    270270
    271271    /**
     
    382382     */
    383383    public $term_taxonomy;
     384
     385    /**
     386     * WordPress Term Meta table.
     387     *
     388     * @since 4.4.0
     389     * @access public
     390     * @var string
     391     */
     392    public $termmeta;
    384393
    385394    /*
Note: See TracChangeset for help on using the changeset viewer.