diff --git src/wp-includes/post-template.php src/wp-includes/post-template.php
index 8a2989b..4b15de6 100644
--- src/wp-includes/post-template.php
+++ src/wp-includes/post-template.php
@@ -357,15 +357,17 @@ function the_excerpt() {
  * Retrieve the post excerpt.
  *
  * @since 0.71
+ * @since 4.5.0 Introduced the `$post` parameter.
  *
- * @param mixed $deprecated Not used.
- * @return string
+ * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
+ * @return string Post excerpt.
  */
-function get_the_excerpt( $deprecated = '' ) {
-	if ( !empty( $deprecated ) )
+function get_the_excerpt( $post = '' ) {
+	if ( is_bool( $post ) ) {
 		_deprecated_argument( __FUNCTION__, '2.3' );
+	}
 
-	$post = get_post();
+	$post = get_post( $post );
 	if ( empty( $post ) ) {
 		return '';
 	}
diff --git tests/phpunit/tests/post/output.php tests/phpunit/tests/post/output.php
index 52c3eff..63b9aad 100644
--- tests/phpunit/tests/post/output.php
+++ tests/phpunit/tests/post/output.php
@@ -171,4 +171,47 @@ EOF;
 		kses_remove_filters();
 	}
 
+	/**
+	 * @ticket 27246
+	 */
+	public function test_the_excerpt_invalid_post() {
+		$this->assertSame( '', get_echo( 'the_excerpt' ) );
+		$this->assertSame( '', get_the_excerpt() );
+	}
+
+	/**
+	 * @ticket 27246
+	 * @expectedDeprecated get_the_excerpt
+	 */
+	public function test_the_excerpt_deprecated() {
+		$this->assertSame( '', get_the_excerpt( true ) );
+		$this->assertSame( '', get_the_excerpt( false ) );
+	}
+
+	/**
+	 * @ticket 27246
+	 */
+	public function test_the_excerpt() {
+		$GLOBALS['post'] = self::factory()->post->create_and_get( array( 'post_excerpt' => 'Post excerpt' ) );
+		$this->assertSame( "<p>Post excerpt</p>\n", get_echo( 'the_excerpt' ) );
+		$this->assertSame( 'Post excerpt', get_the_excerpt() );
+	}
+
+	/**
+	 * @ticket 27246
+	 */
+	public function test_the_excerpt_password_protected_post() {
+		$GLOBALS['post'] = self::factory()->post->create_and_get( array( 'post_excerpt' => 'Post excerpt', 'post_password' => '1234' ) );
+		$this->assertSame( "<p>There is no excerpt because this is a protected post.</p>\n", get_echo( 'the_excerpt' ) );
+		$this->assertSame( 'There is no excerpt because this is a protected post.', get_the_excerpt() );
+	}
+
+	/**
+	 * @ticket 27246
+	 */
+	public function test_the_excerpt_specific_post() {
+		$GLOBALS['post'] = self::factory()->post->create_and_get( array( 'post_excerpt' => 'Foo' ) );
+		$post_id = self::factory()->post->create( array( 'post_excerpt' => 'Bar' ) );
+		$this->assertSame( 'Bar', get_the_excerpt( $post_id ) );
+	}
 }
