Make WordPress Core

Changeset 12881


Ignore:
Timestamp:
01/27/2010 07:42:23 PM (17 years ago)
Author:
ryan
Message:

Change back to an option so that it is always there and regenerate it after cleaning the cache instead of waiting for the next page load. Don't clean taxonomy wide caches when just updating object counts to avoid cleaning when updating a post.

Location:
trunk/wp-includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/post.php

    r12783 r12881  
    20442044        // new-style support for all tag-like taxonomies
    20452045        if ( !empty($tax_input) ) {
    2046                 foreach ( $tax_input as $taxonomy => $tags ) {
     2046                foreach ( $tax_input as $taxonomy => $tags )
    20472047                        wp_set_post_terms( $post_ID, $tags, $taxonomy );
    2048                 }
    20492048        }
    20502049
  • trunk/wp-includes/taxonomy.php

    r12834 r12881  
    18681868        }
    18691869
    1870         clean_term_cache($terms);
     1870        clean_term_cache($terms, '', false);
    18711871
    18721872        return true;
    … …  
    19181918 * @param int|array $ids Single or list of Term IDs
    19191919 * @param string $taxonomy Can be empty and will assume tt_ids, else will use for context.
    1920  */
    1921 function clean_term_cache($ids, $taxonomy = '') {
     1920 * @param bool $clean_taxonomy Whether to clean taxonomy wide caches (true), or just individual term object caches (false). Default is true.
     1921 */
     1922function clean_term_cache($ids, $taxonomy = '', $clean_taxonomy = true) {
    19221923        global $wpdb;
    19231924        static $cleaned = array();
    … …  
    19521953                        continue;
    19531954                $cleaned[$taxonomy] = true;
    1954                 wp_cache_delete('all_ids', $taxonomy);
    1955                 wp_cache_delete('get', $taxonomy);
    1956                 delete_transient("{$taxonomy}_children");
     1955
     1956                if ( $clean_taxonomy ) {
     1957                        wp_cache_delete('all_ids', $taxonomy);
     1958                        wp_cache_delete('get', $taxonomy);
     1959                        delete_option("{$taxonomy}_children");
     1960                        // Regenerate {$taxonomy}_children
     1961                        _get_term_hierarchy($taxonomy);
     1962                }
     1963
    19571964                do_action('clean_term_cache', $ids, $taxonomy);
    19581965        }
    … …  
    20932100        if ( !is_taxonomy_hierarchical($taxonomy) )
    20942101                return array();
    2095         $children = get_transient("{$taxonomy}_children");
     2102        $children = get_option("{$taxonomy}_children");
     2103
    20962104        if ( is_array($children) )
    20972105                return $children;
    2098 
    20992106        $children = array();
    21002107        $terms = get_terms($taxonomy, array('get' => 'all', 'orderby' => 'id', 'fields' => 'id=>parent'));
    … …  
    21032110                        $children[$parent][] = $term_id;
    21042111        }
    2105         set_transient("{$taxonomy}_children", $children);
     2112        update_option("{$taxonomy}_children", $children);
    21062113
    21072114        return $children;
Note: See TracChangeset for help on using the changeset viewer.