the_date() not working

I am using wordpress 3.2 and I did a query post like this:

<?php query_posts("posts_per_page=1post=type&page=post_parent=10");?>

Then I try to echo out the date of this post I queried like this.

<?php echo the_date(); ?>

It gives me the title of the post and the excerpt and the permalink but no date. What do you think the problem is. I’m sure it’s something quite embarrassing.

Here is the code in my template file for the video page:

    <?php query_posts("posts_per_page=1post=type&page=post_parent=10");?>
    <h2>Recent Video</h2>
    <h3 class="date"><?php echo the_date(); ?></h3>
    <p><strong><?php echo the_title(); ?></strong><?php echo the_excerpt(); ?></p>
    <p><a href="https://wordpress.stackexchange.com/questions/52489/<?php echo the_permalink(); ?>" class="more2">Watch Now</a></p>

Here I try to put the query in a loop:

<?php query_posts("posts_per_page=1post=type&page=post_parent=10");?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2>Recent Video</h2>
<h3 class="date"><?php echo the_date(); ?></h3>
<p><strong><?php echo the_title(); ?></strong><?php echo the_excerpt(); ?></p>
<p><a href="https://wordpress.stackexchange.com/questions/52489/<?php echo the_permalink(); ?>" class="more2">Watch Now</a></p>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

the_date() did not work but the the_title() and other functions worked. By the way this changed my query to the_post() which is not what I’m wanting. I want to query the latest video like I did above the loop.

By the way I used the_date function earlier in the page and it worked. Could that be the problem? Here is it before the code that I had a problem with.

<div id="col75" class="firstcol">
    <iframe id="video" src="https://www.youtube.com/embed/videoseries?list=<?php print get_post_meta($post->ID,"playlist_id", true); ?>" width="560" height="350" frameborder="0"></iframe>
    <div id="col25">
        <h2><?php echo get_post_meta($post->ID,"speaker", true); ?></h2>
        <h3 class="date"><?php echo the_date(); ?></h3>

5

See this special note about using the `the_date’

SPECIAL NOTE: When there are multiple posts on a page published under
the SAME DAY, the_date() only displays the date for the first post
(that is, the first instance of the_date()). To repeat the date for
posts published under the same day, you should use the Template Tag
the_time() or get_the_date() (since 3.0) with a date-specific format
string. Use to add the
date set in the admin interface.

  1. You are using query_posts which screws up the globals
  2. You are echoing a function that already prints to the browser

    • You are actually doing that for all your template tags.
    • Change echo the_date(); to: echo get_the_date('F j, Y');
    • Remove the echo from your template tags that already print to the browser or use the alternate functions that return the value.
  3. Use a new WP_Query or get_posts instead of query_posts

  4. Read the Codex. It tells you how to use all these functions and is very helpful 🙂

Leave a Comment