Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Wordpress: single.php doesn't display the_content()

Tags:

I'm creating a custom Wordpress Theme and I can't seem to get the single.php template to work. Below is the code I have written. The title comes up but the content doesn't. Any Ideas why it isn't?

<?php /**  * The Template for displaying all single posts.  */  get_header(); ?>  <div id="content" role="main">     <div <?php post_class() ?> id="post-<?php the_ID(); ?>">         <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>         <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>          <div class="entry">             <?php the_content(); ?>         </div>          <p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>     </div> </div><!-- #content --> 

See here for a screenshot of the output:

enter image description here

like image 366
Thomas Depole Avatar asked Nov 23 '11 17:11

Thomas Depole


2 Answers

the_content() is not displaying because it has to be inside the The Loop - take a look at the docs here »

You need to change your code to this:

if ( have_posts() ) : while ( have_posts() ) : the_post();   the_content(); endwhile; else:   <p><?php _e('Sorry, no posts matched your criteria.'); ?></p> endif; 

You can leave out the else if you are always sure you have content to display :) Or just take look at the original single.php where you can find The Loop always surrounds the_content()

edit:

Here is the whole single.php you might wanna use/start with:

<?php /**  * The Template for displaying all single posts.  */  get_header(); ?>  <div id="content" role="main">      <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>     <div <?php post_class() ?> id="post-<?php the_ID(); ?>">         <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>         <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>          <div class="entry">             <?php the_content(); ?>         </div>          <p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>     </div>     <?php endwhile; endif; ?>  </div><!-- #content --> 
like image 75
lorem monkey Avatar answered Sep 28 '22 00:09

lorem monkey


I just simply put the_post() above the_content() and it worked

like image 45
GnờưĐ GnurT HnA Avatar answered Sep 28 '22 01:09

GnờưĐ GnurT HnA