How to Fix the_date() Returning Empty Date inside Loop in WordPress
- Tuesday, March 21, 2017 By David Peter
Are you using the_date function inside the loop to display post published date? Well, you might notice the_date() returning empty date for the posts that are published on the same day. For example, if you have two posts published on the same day, then the_date function will return date for the first post and returns empty for the next one. It means, whenever the function the_date is called multiple times, then it will return only one date for all the posts published on the same day. Why does it behave so? I don’t know! Seriously, I couldn’t find much explanation on this. But, WordPress provides multiple functions to replace the_date; that’s you can either use the_time (combined with get_option()) or get_the_date() function.
So, here’s how you can fix the issue.
How to fix the_date() returning empty date when called multiple times?
There are couple of options.
Option 1: Use the_time()
Starting from WordPress version 3.0, you can combine the_time() function with get_option() to display the post published date.
<?php the_time(get_option('date_format')); ?>
Option 2: Use get_the_date()
You can use get_the_date() function as below:
<?php echo get_the_date(); ?>
Remember to use echo statement before the function, because get_the_date() is not a self displaying function. But the_date() does.
In case, if you want to format the date.
<?php echo get_the_date('j F Y'); ?>
Learn about get_the_date() here.
What if I don’t want to use alternate functions, and I love using the_date()?
Well, then turn Off the behavior.
Add below line in your template and continue using the_date().
global $previousday; $previousday = -1;