Currently I have the following function that displays an icon when a post has been updated within the last 7 days. I would like this icon to also show when a post has been added within the last 7 days. Is there a minor tweak that can be made to this function to allow that?
<strong>Function
</strong>
// Create's recently updated label (for attaching to templates. Use echo add_update_status(); to retrieve value
function add_update_status() {
//First checks if we are in the loop and we are not displaying a page
if ( ! in_the_loop() || is_page() )
return $html;
//Instantiates the different date objects
$created = new DateTime( get_the_date('Y-m-d g:i:s') );
$updated = new DateTime( get_the_modified_date('Y-m-d g:i:s') );
$current = new DateTime( date('Y-m-d g:i:s') );
//Creates the date_diff objects from dates
$created_to_updated = date_diff($created , $updated);
$updated_to_today = date_diff($updated, $current);
//Checks if the post has been updated since its creation
$has_been_updated = ( $created_to_updated -> s > 0 || $created_to_updated -> i > 0 ) ? true : false;
//Checks if the last update is less than n days old. (replace n by your own value)
$has_recent_update = ( $has_been_updated && $updated_to_today -> days < 7 ) ? true : false;
//Adds HTML after the title
$recent_update = $has_recent_update ? '<small><a href="#" data-toggle="tooltip" title="Updated: '. get_the_modified_date('M j') .' at '. get_the_modified_date('g:i a') .'"><span class="glyphicon glyphicon-asterisk text-orange"></span></a></small>' : '';
//Returns the modified title
return $html.' '.$recent_update;
}
<strong>Call from Template:</strong>
<?php echo add_update_status(); ?>
Arnav Joy answers:
try this
<?php
// Create's recently updated label (for attaching to templates. Use echo add_update_status(); to retrieve value
function add_update_status() {
//First checks if we are in the loop and we are not displaying a page
if ( ! in_the_loop() || is_page() )
return $html;
//Instantiates the different date objects
$created = new DateTime( get_the_date('Y-m-d g:i:s') );
$updated = new DateTime( get_the_modified_date('Y-m-d g:i:s') );
$current = new DateTime( date('Y-m-d g:i:s') );
//Creates the date_diff objects from dates
$created_to_updated = date_diff($created , $updated);
$updated_to_today = date_diff($updated, $current);
$created_to = date_diff($created, $current);
//Checks if the post has been updated since its creation
$has_been_updated = ( $created_to_updated -> s > 0 || $created_to_updated -> i > 0 ) ? true : false;
//Checks if the last update is less than n days old. (replace n by your own value)
$has_recent_update = ( $has_been_updated && $updated_to_today -> days < 7 ) ? true : false;
$has_created = ( $created_to -> days < 7 ) ? true : false;
//Adds HTML after the title
$recent_update = $has_recent_update ? '<small><a href="#" data-toggle="tooltip" title="Updated: '. get_the_modified_date('M j') .' at '. get_the_modified_date('g:i a') .'"><span class="glyphicon glyphicon-asterisk text-orange"></span></a></small>' : '';
if( $has_created ) {
$recent_update = '<small><a href="#" data-toggle="tooltip" title="Updated: '. get_the_modified_date('M j') .' at '. get_the_modified_date('g:i a') .'"><span class="glyphicon glyphicon-asterisk text-orange"></span></a></small>';
}
//Returns the modified title
return $html.' '.$recent_update;
}
streetfire comments:
Hi, thank you! That works great!