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.
Table of contents
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>';
}