From 8b07ad9884e092e61887aad72cebf25450316b82 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Mon, 4 Feb 2013 13:48:46 +0000 Subject: [PATCH] Use incrementors for cache invalidation in get_terms(). fixes #23326 see #23173 git-svn-id: https://develop.svn.wordpress.org/trunk@23384 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-includes/taxonomy.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/wp-includes/taxonomy.php b/wp-includes/taxonomy.php index 1932bab383..d527ee17dc 100644 --- a/wp-includes/taxonomy.php +++ b/wp-includes/taxonomy.php @@ -1240,10 +1240,10 @@ function get_terms($taxonomies, $args = '') { // $args can be whatever, only use the args defined in defaults to compute the key $filter_key = ( has_filter('list_terms_exclusions') ) ? serialize($GLOBALS['wp_filter']['list_terms_exclusions']) : ''; $key = md5( serialize( compact(array_keys($defaults)) ) . serialize( $taxonomies ) . $filter_key ); - $last_changed = wp_cache_get('last_changed', 'terms'); - if ( !$last_changed ) { - $last_changed = time(); - wp_cache_set('last_changed', $last_changed, 'terms'); + $last_changed = wp_cache_get( 'last_changed', 'terms' ); + if ( ! $last_changed ) { + $last_changed = 1; + wp_cache_set( 'last_changed', $last_changed, 'terms' ); } $cache_key = "get_terms:$key:$last_changed"; $cache = wp_cache_get( $cache_key, 'terms' ); @@ -2632,7 +2632,12 @@ function clean_term_cache($ids, $taxonomy = '', $clean_taxonomy = true) { do_action('clean_term_cache', $ids, $taxonomy); } - wp_cache_set('last_changed', time(), 'terms'); + if ( function_exists( 'wp_cache_incr' ) ) { + wp_cache_incr( 'last_changed', 1, 'terms' ); + } else { + $last_changed = wp_cache_get( 'last_changed', 'terms' ); + wp_cache_set( 'last_changed', $last_changed + 1, 'terms' ); + } } /**