Дата публикации поста 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