Posts, Post Types: Avoid a PHP warning when `the_content()` is called outside of the loop.

Fixes #47824.

git-svn-id: https://develop.svn.wordpress.org/trunk@46079 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov 2019-09-07 14:32:23 +00:00
parent b545a56189
commit 69054687be
2 changed files with 10 additions and 1 deletions

View File

@ -282,7 +282,7 @@ function get_the_content( $more_link_text = null, $strip_teaser = false, $post =
return '';
}
if ( null === $post ) {
if ( null === $post && in_the_loop() ) {
$elements = compact( 'page', 'more', 'preview', 'pages', 'multipage' );
} else {
$elements = generate_postdata( $_post );

View File

@ -75,4 +75,13 @@ class Tests_Post_GetTheContent extends WP_UnitTestCase {
$this->assertSame( 'Bang', $found );
}
/**
* @ticket 47824
*/
public function test_should_fall_back_to_post_global_outside_of_the_loop() {
$GLOBALS['post'] = self::factory()->post->create( array( 'post_content' => 'Foo' ) );
$this->assertSame( 'Foo', get_the_content() );
}
}