Выводим сообщение о старости записи

25 Мар 2023г. в 11:52

Если вы публикуете в своем блоге информацию, которая может устареть со временем, то будет очень полезно наглядно информировать читателя о времени, прошедшем с начала публикации. В данном уроке мы рассмотрим, как с помощью PHP добавить в тему WordPress функцию автоматической генерации сообщения в записи о том, что она имеет возраст в Х лет.

Вывод сообщения о старости поста

Небольшой код, добавленный в тему, будет выводить сообщение сверху записи, если она старше определенного количества лет. Можно ограничить вывод сообщения определенным типом записей или категории, добавив фильтр.

Код PHP

<?php
$post_age = date('Y') - get_the_time('Y');
if($post_age > 2 && in_category('4') ) { ?>

<div class="old-post">
<p><strong>Данная запись опубликована в <?php the_time('Y'); ?> году!</strong><br />
Информация требует проверки и уточнения на соответствие современному уровню.</p>
</div>

<?php } ?>

Первая строчка кода получает значение текущего года и вычитает из него значение года публикации записи. В результате в переменной $post_age мы получаем возраст записи.

Затем происходит проверка на старость (в примере, "старая" запись имеет возраст более 2 лет) И вхождение в категорию с ID 4. В фильтре можно использовать и другие условия, которые имеет в своем арсенале WordPress.

Строка простого кода HTML выводит сообщение пользователю. Тег <?php the_time('Y'); ?> добавляет год публикации в сообщение

Данный код надо скопировать в файл single.php вашей темы выше тега <?php the_content(); ?>.

CSS
Выше приведенный код будет выводить неформатированное сообщение в нужных записях. Для формирования внешнего вида можно использовать CSS.

.old-post {
margin: 0 0 20px 0; padding: 15px 20px;
background: #e9e9eb url(images/grey-bg.png);
}

.old-post p {
background: url(images/warning.png) left no-repeat; padding: 0 0 0 65px;
color: #717171;
}

Код нужно добавить в файл style.css вашей темы.

Мы просто установили некоторый отступ вокруг элемента с сообщением, использовали для него серый фон. Также будет выводиться иконока предупреждения перед текстом.