diff --git src/wp-includes/cache-compat.php src/wp-includes/cache-compat.php
new file mode 100644
index 0000000..ca101a0
--- /dev/null
+++ src/wp-includes/cache-compat.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * Compatibility for cache drop-ins.
+ *
+ * @since 4.6.0
+ */
+
+if ( ! function_exists( 'wp_cache_get_multiple' ) ) :
+	function wp_cache_get_multiple( $groups ) {
+		$values = array();
+
+		foreach ( $groups as $group => $keys ) {
+			foreach ( $keys as $keys ) {
+				$values[ $group ][ $key ] = $this->get( $key, $group );
+			}
+		}
+
+		return $values;
+	}
+endif;
diff --git src/wp-includes/cache.php src/wp-includes/cache.php
index 9da8d02..204b3a6 100644
--- src/wp-includes/cache.php
+++ src/wp-includes/cache.php
@@ -124,6 +124,22 @@ function wp_cache_get( $key, $group = '', $force = false, &$found = null ) {
 }
 
 /**
+ * Gets multiple values from cache in one call.
+ *
+ * @since 4.6.0
+ * @uses $wp_object_cache Object Cache Class
+ *
+ * @param array $groups Multidimensional array, where the array keys are cache group names,
+ *                      and the values are arrays of keys to be fetched from that group.
+ * @return array|bool Array of values organized into groups.
+ */
+function wp_cache_get_multiple( $groups ) {
+	global $wp_object_cache;
+
+	return $wp_object_cache->get_multiple( $groups );
+}
+
+/**
  * Increment numeric cache item's value
  *
  * @since 3.3.0
@@ -560,6 +576,28 @@ class WP_Object_Cache {
 	}
 
 	/**
+	 * Retrieves multiple values from the cache.
+	 *
+	 * @since 4.6.0
+	 * @access public
+	 *
+	 * @param array $groups Multidimensional array, where the array keys are cache group names,
+	 *                      and the values are arrays of keys to be fetched from that group.
+	 * @return array Array of values organized into groups.
+	 */
+	public function get_multiple( $groups ) {
+		$values = array();
+
+		foreach ( $groups as $group => $keys ) {
+			foreach ( $keys as $key ) {
+				$values[ $group ][ $key ] = $this->get( $key, $group );
+			}
+		}
+
+		return $values;
+	}
+
+	/**
 	 * Increments numeric cache item's value.
 	 *
 	 * @since 3.3.0
diff --git src/wp-includes/load.php src/wp-includes/load.php
index b2181c0..c2e8742 100644
--- src/wp-includes/load.php
+++ src/wp-includes/load.php
@@ -462,8 +462,11 @@ function wp_start_object_cache() {
 		wp_using_ext_object_cache( true );
 	}
 
-	if ( ! wp_using_ext_object_cache() )
+	if ( wp_using_ext_object_cache() ) {
+		require_once ABSPATH . WPINC . '/cache-compat.php';
+	} else {
 		require_once ( ABSPATH . WPINC . '/cache.php' );
+	}
 
 	/*
 	 * If cache supports reset, reset instead of init if already
diff --git tests/phpunit/tests/cache.php tests/phpunit/tests/cache.php
index 87028c5..1a105d0 100644
--- tests/phpunit/tests/cache.php
+++ tests/phpunit/tests/cache.php
@@ -313,4 +313,37 @@ class Tests_Cache extends WP_UnitTestCase {
 		// Make sure $fake_key is not stored
 		$this->assertFalse( wp_cache_get( $fake_key ) );
 	}
+
+	/**
+	 * @ticket 20875
+	 */
+	public function test_get_multiple() {
+		wp_cache_set( 'foo1', 'bar', 'group1' );
+		wp_cache_set( 'foo2', 'bar', 'group1' );
+		wp_cache_set( 'foo1', 'bar', 'group2' );
+
+		$found = wp_cache_get_multiple( array(
+			'group1' => array(
+				'foo1',
+				'foo2',
+				'foo3',
+			),
+			'group2' => array(
+				'foo1',
+			),
+		) );
+
+		$expected = array(
+			'group1' => array(
+				'foo1' => 'bar',
+				'foo2' => 'bar',
+				'foo3' => false,
+			),
+			'group2' => array(
+				'foo1' => 'bar',
+			),
+		);
+
+		$this->assertSame( $expected, $found );
+	}
 }
