Wordpress - сохраните исходную дату публикации блога, но добавьте вторую, последнюю обновленную дату
Я использую этот фрагмент, чтобы добавить недавно обновленную страницу рядом с датой публикации, если она обновлена:
add_filter('the_title' , 'add_update_status');
function add_update_status($html) {
//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 ? '<span class="label label-warning">Recently updated</span>' : '';
//Returns the modified title
return $html.' '.$recent_update;
}
Я хочу, чтобы мое сообщение показывало следующее: Опубликовано 8 октября 2012 г. в 9:07, Последнее обновление - 6 ноября 2013 г. в 11:03
Как мы можем достичь этого?
2 ответа
Вы можете просто добавить это в свой шаблон сообщения:
Published on <?php echo get_the_date('F j, Y'); ?> at <?php the_time('g:i a'); ?>, Last modified on <?php the_modified_date('F j, Y'); ?> at <?php the_modified_date('g:i a'); ?>
Используйте эти хуки действий WordPress при создании и обновлении нового поста. при создании нового поста используйте вставку, а при обновлении поста - хук сохранения WordPress.
Создайте мета-запись, в которой хранится время создания и обновления сообщения, как показано ниже.
// когда добавляется или обновляется новый пост
add_action( 'save_post', 'my_save_post');
function my_save_post($post_id){
if(empty(get_post_meta($post_id, 'created_on', true))) {
update_post_meta($post_id, 'created_on', date('Y-m-d h:i:s'));
}
update_post_meta($post_id, 'updated_on', date('Y-m-d h:i:s'));
}
Теперь, когда вам нужно показать это созданное и обновленное время, разделенное на вашу тему, используйте эти функции, как показано ниже:
Показать созданное время
get_post_meta($post_id, 'created_on', true);
Показать обновленное время
get_post_meta($post_id, 'updated_on', true);