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.'&nbsp;'.$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);
Другие вопросы по тегам