Index: wp-includes/cache.php
===================================================================
--- wp-includes/cache.php	(revision 21301)
+++ wp-includes/cache.php	(working copy)
@@ -114,6 +114,29 @@
 }
 
 /**
+ * Gets multiple values from cache in one call.
+ *
+ * Key/group association is handled by assuming all keys have the same group
+ * if string or single value array is passed as the 'groups' value. If 'groups'
+ * is an array with more than 1 value, then groups[n] corresponds with keys[n].
+ * If there are more 'keys' values then 'groups' values, remaining keys will be
+ * pulled from the 'default' group.
+ *
+ * @since   3.?
+ * @uses    $wp_object_cache Object Cache Class
+ * @see     WP_Object_Cache::get_multi()
+ *
+ * @param   mixed       $keys       Array of keys associated with values.
+ * @param   mixed       $groups     Array of groups associated with keys.
+ * @return  array|bool              Array of values organized into groups.
+ */
+function wp_cache_get_multi( $keys, $groups = '' ) {
+	global $wp_object_cache;
+
+	return $wp_object_cache->get_multi( $keys, $groups );
+}
+
+/**
  * Increment numeric cache item's value
  *
  * @since 3.3.0
@@ -417,6 +440,64 @@
 	}
 
 	/**
+	 * Gets multiple values from cache in one call.
+	 *
+	 * Key/group association is handled by assuming all keys have the same group
+	 * if string or single value array is passed as the 'groups' value. If 'groups'
+	 * is an array with more than 1 value, then groups[n] corresponds with keys[n].
+	 * If there are more 'keys' values then 'groups' values, remaining keys will be
+	 * pulled from the 'default' group.
+	 *
+	 * @since   3.?
+	 *
+	 * @param   mixed       $keys       Array of keys associated with values.
+	 * @param   mixed       $groups     Array of groups associated with keys.
+	 * @return  array|bool              Array of values organized into groups.
+	 */
+	function get_multi( $keys, $groups = 'default' ) {
+		$values = array();
+
+		// If two strings are sent, do a normal get
+		if ( is_string( $keys ) && is_string( $groups ) ) {
+			$value = $this->get( $keys, $groups );
+
+			if ( false === $value )
+				return false;
+
+			$values[ $groups ][ $keys ] = $this->get( $keys, $groups );
+			return $values;
+		}
+
+		// Ensure arrays
+		if ( ! is_array( $keys ) )
+			$keys = (array) $keys;
+
+		if ( ! is_array( $groups ) )
+			$groups = (array) $groups;
+
+		// Ensure numerical keying of arrays
+		$keys = array_values( $keys );
+		$groups = array_values( $groups );
+
+		/**
+		 * Loop through keys to get values. If $groups[ $i ] exists, assume
+		 * it belongs with $keys[ $i ]. If there is only one value in $groups,
+		 * assume that group corresponds to all $keys. Default is to make the
+		 * group 'default'.
+		 */
+		for ( $i = 0; $i < count( $keys ); $i++ ) {
+			if ( isset( $groups[ $i ] ) && ! empty( $groups[ $i ] ) )
+				$values[ $groups[ $i ] ][ $keys[ $i ] ] = $this->get( $keys[ $i ], $groups[ $i ] );
+			elseif ( count( $groups ) == 1 && isset( $groups[0] ) && ! empty( $groups[ 0 ] ) )
+				$values[ $groups[ $i ] ][ $keys[ $i ] ] = $this->get( $keys[ $i ], $groups[0] );
+			else
+				$values[ $groups[ $i ] ][ $keys[ $i ] ] = $this->get( $keys[ $i ], 'default' );
+		}
+
+		return $values;
+	}
+
+	/**
 	 * Increment numeric cache item's value
 	 *
 	 * @since 3.3.0
