Как автоматически отмечать старые посты в WordPress

Ведение контента на сайте требует не только создания новых статей, но и управления уже опубликованными материалами. Особенно важным становится выделение старых записей, чтобы пользователи и поисковые системы понимали, что статья устарела или требует обновления. В этой статье я подробно расскажу, как автоматически отмечать старые посты в WordPress с помощью кода и плагинов, а также дам полезные советы по оптимизации работы с такими записями.

Почему важно автоматически отмечать старые записи в WordPress

Отметка старых постов помогает не только читателям, но и администрации сайта. С помощью такой метки можно:

  • Уведомлять посетителей, что информация может быть устаревшей;
  • Автоматизировать процесс обновления контента;
  • Улучшить SEO, показывая поисковикам структуру и актуальность материалов;
  • Упрощать навигацию по сайту, выделяя свежий и старый контент.

Особенно это актуально для новостных, образовательных и журнал-ориентированных сайтов, например, таких как journalx.ru.

Как определить, что пост считается «старым»

Для начала нужно четко определить критерии, по которым запись считается старой. Чаще всего используют:

  • Возраст записи — например, старше 6 месяцев или года;
  • Дата последнего обновления — если статья не обновлялась длительное время;
  • Статистика просмотров — низкая активность может указывать на устаревший материал.

В этой статье возьмем за основу возраст записи — более 6 месяцев.

Автоматическое добавление метки "Старое" с помощью кода

Для автоматической отметки старых постов можно использовать пользовательскую функцию, которая будет запускаться при сохранении записи или через CRON для массового обновления. Рассмотрим функцию journalx_mark_old_posts, которая добавляет метку "Старое" к записям старше 6 месяцев.

function journalx_mark_old_posts() {
    $args = array(
        'post_type' => 'post',
        'posts_per_page' => -1,
        'date_query' => array(
            array(
                'before' => '6 months ago',
            ),
        ),
        'tax_query' => array(
            array(
                'taxonomy' => 'post_tag',
                'field' => 'slug',
                'terms' => 'staryj',
                'operator' => 'NOT IN',
            ),
        ),
        'fields' => 'ids',
    );
    $old_posts = get_posts($args);
    foreach ($old_posts as $post_id) {
        wp_set_post_tags($post_id, 'staryj', true); // добавляем тег 'staryj'
    }
}
// Запускаем функцию один раз
journalx_mark_old_posts();

В этом примере мы используем тег с слагом staryj. Если такого тега нет, его можно создать вручную в админке WordPress или добавить код для автоматического создания.

Автоматизация с помощью WP-Cron

Чтобы функция запускалась регулярно, например, раз в неделю, используем WP-Cron:

function journalx_schedule_old_posts_tagging() {
    if (!wp_next_scheduled('journalx_mark_old_posts_event')) {
        wp_schedule_event(time(), 'weekly', 'journalx_mark_old_posts_event');
    }
}
add_action('wp', 'journalx_schedule_old_posts_tagging');

add_action('journalx_mark_old_posts_event', 'journalx_mark_old_posts');

Теперь WordPress автоматически будет отмечать старые посты тегом "Старое" раз в неделю.

Использование плагинов для автоматической отметки старых записей

Если не хочется писать код, можно воспользоваться готовыми плагинами. Вот несколько вариантов:

  • Auto Post Scheduler — позволяет автоматически обновлять старые посты, что можно использовать для отметки;
  • Post Expirator — с помощью него можно задать дату истечения для публикации и автоматически менять статус или метки;
  • Clearfy Pro — плагин оптимизации, который среди прочего умеет управлять метаданными и статусами записей, с возможностью автоматизации.

Плагин Clearfy Pro особенно подходит, если вы хотите объединить автоматизацию с оптимизацией сайта.

Как визуально выделить старые записи на сайте

После того, как старые записи помечены тегом или категорией, стоит сделать их визуально отличимыми для пользователей. Это можно сделать добавлением CSS-стилей или через изменение шаблона темы.

Пример CSS для выделения постов с тегом "Старое"

.post-tag-staryj {
    background-color: #f8d7da;
    border-left: 5px solid #721c24;
    padding: 10px;
    margin-bottom: 20px;
}

Этот стиль можно подключить в файл стилей темы или через кастомизатор.

Добавление метки в шаблон вывода поста

В файле single.php или шаблоне вывода записей можно вывести специальный знак рядом с заголовком, если у записи есть тег "Старое":

if (has_tag('staryj')) {
    echo '<span class="old-post-label">[Старое]</span>';
}

Так пользователи сразу увидят, что материал требует внимания или обновления.

Обновление и снятие отметки с записей после доработки

Если вы обновили статью, логично убрать метку "Старое". Для этого можно добавить функцию, которая будет удалять тег при обновлении записи:

function journalx_remove_old_tag_on_update($post_id) {
    if (get_post_type($post_id) !== 'post') {
        return;
    }
    $post_date = get_the_date('U', $post_id);
    $post_modified = get_the_modified_date('U', $post_id);
    // Если статья обновлена недавно (например, в последние 3 месяца), удаляем тег
    if (($post_modified - $post_date) > 0 && ($post_modified > strtotime('-3 months'))) {
        $tags = wp_get_post_tags($post_id, array('fields' => 'slugs'));
        if (in_array('staryj', $tags)) {
            wp_remove_object_terms($post_id, 'staryj', 'post_tag');
        }
    }
}
add_action('save_post', 'journalx_remove_old_tag_on_update');

Таким образом, метка будет сниматься автоматически после обновления.

Выводы и рекомендации

Автоматическая отметка старых постов — простой и эффективный способ управлять контентом на сайте. Используя приведенный код и плагины, вы сможете:

  • Облегчить навигацию для посетителей;
  • Поддерживать актуальность информации;
  • Улучшить SEO-показатели;
  • Автоматизировать рутинные задачи.

Для сайтов с частым обновлением контента, таких как журнал news или блог, это особенно полезно.

Если хотите более продвинутую автоматизацию и дополнительные возможности, рекомендую обратить внимание на Clearfy Pro, который позволит настроить множество параметров управления контентом без лишнего кода.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как изменить URL адреса сообщений в WordPress без перезагрузки
06.12.2025
Как создать пресс-релиз в WordPress с автоматизацией отправки
05.02.2026
Как добавить автоподсказки в поиске WordPress с примерами плагинов и кода
29.11.2025
Как удалить старые версии постов в WordPress для оптимизации базы данных
15.02.2026
Как создать автоматический журнал изменений в WordPress с примерами кода и плагинов
13.04.2026
×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙