From 55f60d7af45535a7407e8abfc9696dc700607a92 Mon Sep 17 00:00:00 2001 From: Jon Cave Date: Wed, 21 Aug 2013 19:14:09 +0000 Subject: [PATCH] Pass false returned for timed out transients through transient_$transient filter. This brings the same behaviour as external object caches to the default database backend. Props johnbillion. Fixes #24685. Built from https://develop.svn.wordpress.org/trunk@25075 git-svn-id: http://core.svn.wordpress.org/trunk@25060 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/option.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/wp-includes/option.php b/wp-includes/option.php index 66c74c5266..385ba89253 100644 --- a/wp-includes/option.php +++ b/wp-includes/option.php @@ -461,12 +461,13 @@ function get_transient( $transient ) { if ( get_option( $transient_timeout ) < time() ) { delete_option( $transient_option ); delete_option( $transient_timeout ); - return false; + $value = false; } } } - $value = get_option( $transient_option ); + if ( ! isset( $value ) ) + $value = get_option( $transient_option ); } return apply_filters( 'transient_' . $transient, $value ); @@ -1029,11 +1030,12 @@ function get_site_transient( $transient ) { if ( false !== $timeout && $timeout < time() ) { delete_site_option( $transient_option ); delete_site_option( $transient_timeout ); - return false; + $value = false; } } - $value = get_site_option( $transient_option ); + if ( ! isset( $value ) ) + $value = get_site_option( $transient_option ); } return apply_filters( 'site_transient_' . $transient, $value );