The is_new_day() WordPress PHP function determines whether the publish date of the current post in the loop is different from the publish date of the previous post in the loop.
Usage
if ( is_new_day() ) { // Do something if it's a new day } else { // Do something else if it's not a new day }
Parameters
- None
More information
See WordPress Developer Resources: is_new_day()
Examples
Displaying “New Day” Heading
Display a “New Day” heading before the first post of each new day in the loop.
if ( have_posts() ) { while ( have_posts() ) { the_post(); if ( is_new_day() ) { echo '<h2>New Day</h2>'; } // Display the post content here } }
Adding a CSS Class to Posts on a New Day
Add a special CSS class to the posts that are published on a new day.
if ( have_posts() ) { while ( have_posts() ) { the_post(); $new_day_class = is_new_day() ? 'new-day' : ''; echo '<div class="post ' . $new_day_class . '">'; // Display the post content here echo '</div>'; } }
Separating Posts by Day with Horizontal Line
Separate posts in the loop with a horizontal line if they are from different days.
if ( have_posts() ) { while ( have_posts() ) { the_post(); if ( is_new_day() ) { echo '<hr>'; } // Display the post content here } }
Displaying Date for Posts on a New Day
Display the date before the post title for posts published on a new day.
if ( have_posts() ) { while ( have_posts() ) { the_post(); if ( is_new_day() ) { echo '<p class="post-date">' . get_the_date() . '</p>'; } // Display the post title and content here } }
Counting Posts Per Day
Count the number of posts published each day in the loop.
$day_count = 0; if ( have_posts() ) { while ( have_posts() ) { the_post(); if ( is_new_day() ) { if ( $day_count > 0 ) { echo '<p>Posts today: ' . $day_count . '</p>'; } $day_count = 1; } else { $day_count++; } // Display the post content here } // Display the post count for the last day in the loop echo '<p>Posts today: ' . $day_count . '</p>'; }