Codex

Template Tags/the content

Contents

Description

Displays the contents of the current post. This tag must be within The_Loop.

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.

Note 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, such as single.php, where just one post is displayed.
  • Read Customizing the Read More for more details.

Usage

<?php the_content$more_link_text$strip_teaser$more_file ); ?>

How to pass parameters to tags with PHP function-style parameters

Parameters

$more_link_text
(string) (optional) The link text to display for the "more" link.
Default: '(more...)'
$strip_teaser
(boolean) (optional) Should the text before the "more" link be hidden (TRUE) or displayed (FALSE).
Default: FALSE
$more_file
(string) (optional) File the "more" link points to (no longer used).
Default: The current file

Examples

Designating the "More" Text

Displays the content of the post and uses "Read more..." for the more link text when the <!--more--> Quicktag is used.

<?php the_content('Read more...'); ?>

Include Title in "More"

Similar to the above example, but thanks to the_title() tag and the display parameter, it can show "Continue reading ACTUAL POST TITLE" when the <!--more--> Quicktag is used.

<?php the_content("Continue reading " . the_title('', '', false)); ?>

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.

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

if you need to display all of the content:

<?php 
global $more;    // Declare global $more (before the loop).
$more = 1;       // Set (inside the loop) to display all content, including text below more.
the_content();
?>

Alternative Usage

You may use get_the_content() to return the content value instead of outputting it directly. Example:

<?php $content = get_the_content(); ?>

Please note! get_the_content will not have the following done to it and you are advised to add them until the core has been updated:

<?php
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]&gt;', $content);
?>

Changelog

Since: 0.71

Source File

the_content() is located in wp-includes/post-template.php.

Related

the_ID, the_title, the_title_attribute, single_post_title, the_title_rss, the_content, the_content_rss, the_excerpt, the_excerpt_rss, wp_link_pages, next_post_link, next_posts_link, previous_post_link, previous_posts_link, posts_nav_link, sticky_class, the_meta

See also index of Function Reference and index of Template Tags.