Дата публикации поста Wordpress под заголовком

Категория: WordPress

Чтобы вывести дату публикации/обновления записи WordPress необходимо править шаблон content.php. Хуки не предусмотрены. Так что, по хорошему, нужно создать дочернюю тему и скопировать в нее этот шаблон. Как скрыть автора записи поста WordPress.

Примечание

Я использую тему Twenty Twelve, поэтому имена шаблонов и функций применимы к ней. В других темах, в большинстве случаев, имя шаблона будет таким же, а нужные функции Вы определите по аналогии.

Пример кода из шаблона content.php, который выводит мета данные поста (entry data) под ним:

<footer class="entry-meta">
  <?php twentytwelve_entry_meta(); ?>
  ...

Данные о публикации поста выводится в формате:

Запись опубликована DATE автором AUTHOR с тегами TAGS,LIST в рубрике CATEGORIES,LIST

Функция twentytwelve_entry_meta() объявлена в файле functions.php, если хотите изменить формат вывода мета мнформации - переопределите эту функцию в файле functions.php дочерней темы. 

В примере ниже я убрал вывод автора под постом и вывел метки вместе с тегами:

function twentytwelve_entry_meta() {
    // Translators: used between list items, there is a space after the comma.
    $categories_list = get_the_category_list( __( ', ', 'twentytwelve' ) );

    // Translators: used between list items, there is a space after the comma.
    $tag_list = get_the_tag_list( '', __( ', ', 'twentytwelve' ) );

    $dateFormat = '<time class="entry-date" datetime="%1$s">%2$s</time>';
    $date = vsprintf($dateFormat, [esc_attr(get_the_date('c')), esc_html(get_the_date())]);

    $labels = $tag_list ?: $categories_list;
    if ($labels) {
        echo "<span class=\"post-labels\">$labels</span>";
    }
    
    echo "<span class=\"post-date\" title=\"Дата публикации\">$date</span>";
}

Теперь, находим в шаблоне content.php место вывода заголовка и добавляем вывод даты обновления поста под ним:

<?php if ( is_single() ) : ?>
    <h1 class="entry-title"><?php the_title(); ?></h1>

    <div class="post-date" title="Дата обновления">
        Статья обновлялась 
        <?php
            $format = '<time class="entry-date" datetime="%1$s">%2$s</time>';
            vprintf($format, [get_the_time('c'), human_time_diff(get_the_time('U'))]); 
        ?>
        назад
    </div>

Для вывода прошедшего времени с момента обновления используем WordPress функцию human_time_diff(). Она принимает дату события в качестве первого параметра, и форматирует ее в человеко читаемый вид:

$date = human_time_diff($dateFrom, $dateTo);

* Параметр $dateTo не обязателен, он может содержать конечную дату события. По умолчанию подставляется текущая дата - time().

Примеры использования:

echo human_time_diff(time() - 60); // 1 минута

Удачной разработки!

#дата публикации под заголовком, #human readable date, #format meta entry data, #post data wordpress

категория: WordPress