the_content( string $more_link_text = null, bool $strip_teaser = false )

Displays the post content.

Parameters

$more_link_textstringoptional
Content for when there is more text.

Default:null

$strip_teaserbooloptional
Strip teaser content before the more text.

Default:false

More Information

If the quicktag <!--more--> is used in a post to designate the “cut-off” point for the post to be excerpted, the_content() tag will only show the excerpt up to the <!--more--> quicktag point on non-single/non-permalink post pages. By design, the_content() tag includes a parameter for formatting the <!--more--> content and look, which creates a link to “continue reading” the full post.

Notes about <!--more--> :

  • No whitespaces are allowed before the “more” in the <!--more--> quicktag. In other words <!-- more --> will not work!
  • The <!--more--> quicktag will not operate and is ignored in Templates where just one post is displayed, such as single.php.
  • Read Customizing the Read More for more details.

Source

function the_content( $more_link_text = null, $strip_teaser = false ) {
	$content = get_the_content( $more_link_text, $strip_teaser );

	/**
	 * Filters the post content.
	 *
	 * @since 0.71
	 *
	 * @param string $content Content of the current post.
	 */
	$content = apply_filters( 'the_content', $content );
	$content = str_replace( ']]>', ']]&gt;', $content );
	echo $content;
}

Hooks

apply_filters( ‘the_content’, string $content )

Filters the post content.

Changelog

VersionDescription
0.71Introduced.

User Contributed Notes

  1. Skip to note 6 content

    Overriding Archive/Single Page Behavior
    If the_content() isn’t working as you desire (displaying the entire story when you only want the content above the <!--more--> Quicktag, for example) you can override the behavior with global $more.

    // Declare global $more (before the loop).
    global $more;
    
    // Set (inside the loop) to display content above the more tag.
    $more = 0;
    
    the_content( 'More ...' );
    ?>

    If you need to display all of the content:

    // Declare global $more (before the loop).
    global $more;
    
    // Set (inside the loop) to display all content, including text below more.
    $more = 1;
    
    the_content();
  2. Skip to note 7 content

    Ignore the “More” on a Sticky Post

    This will ignore the more tag in a sticky post–meaning it will display the full content even if there is a <!--more--> in the content, but for all other posts it will display a more link.

    // Declare global $more (before the loop).
    global $more;
    
    if ( is_sticky() ) {
    	// Set (inside the loop) to display all content, including text below more.
    	$more = 1;
    
    	the_content();
    } else {
    	$more = 0;
    
    	the_content( __( 'Read the rest of this entry »', 'textdomain' ) );
    }

You must log in before being able to contribute a note or feedback.