Как удалить закрепленные сообщения в WordPress

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

Что такое закрепленные сообщения и зачем их удалять

Закрепленный пост — это публикация, отмеченная особым статусом, который заставляет ее отображаться выше всех остальных записей на странице блога. Эта функция полезна для акцентирования внимания на важной информации. Но бывают ситуации, когда закрепление уже не нужно, например:

  • Смена приоритетов в контенте сайта;
  • Обновление дизайна или структуры блога;
  • Ошибочное закрепление и необходимость быстрого исправления.

Удаление закрепления не означает удаление записи — пост остается опубликованным и доступным обычным способом.

Удаление закрепления через админ-панель WordPress

Самый простой способ убрать закрепление — через стандартный интерфейс:

  1. Перейдите в раздел Записи > Все записи.
  2. Найдите закрепленный пост (обычно он помечен меткой «Закреплено»).
  3. Наведите курсор на название записи и нажмите Быстрое редактирование.
  4. Снимите галочку с опции Закрепить на главной.
  5. Нажмите Обновить.

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

Удаление закрепления через код — массовое снятие статуса

Для удаления закрепленного статуса у всех записей можно использовать следующий PHP-код. Его можно добавить в файл functions.php вашей темы или использовать в плагине для кастомных функций.

function wplite_remove_all_sticky_posts() {
    $sticky_posts = get_option('sticky_posts');
    if (!empty($sticky_posts)) {
        // Снимаем закрепление со всех постов
        update_option('sticky_posts', []);
    }
}
add_action('init', 'wplite_remove_all_sticky_posts');

Этот код полностью очищает список закрепленных постов, снимая с них статус sticky. Можно вызвать эту функцию один раз, а потом удалить из кода, чтобы не сбрасывать закрепления повторно.

Удаление закрепления у конкретного поста по ID

Если нужно снять закрепление только у одного поста, используйте такой код, заменив POST_ID на реальный идентификатор записи:

function wplite_remove_sticky_post_by_id($post_id) {
    $sticky_posts = get_option('sticky_posts');
    if (in_array($post_id, $sticky_posts)) {
        $key = array_search($post_id, $sticky_posts);
        if ($key !== false) {
            unset($sticky_posts[$key]);
            update_option('sticky_posts', $sticky_posts);
        }
    }
}

// Пример вызова
wplite_remove_sticky_post_by_id(123);
<

Этот подход дает полный контроль и подходит для автоматизации через функции или при миграциях.

Использование плагинов для управления закрепленными сообщениями

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

  • Sticky Posts Manager — простой плагин, который позволяет быстро добавлять и снимать закрепления через удобный интерфейс.
  • WP Bulk Remove — плагин для массового удаления различных типов данных, в том числе закрепленных постов.
  • Clearfy Pro — многофункциональный плагин оптимизации, который среди прочего упрощает управление закрепленными записями и другими настройками WordPress. Подробнее на wpshop.ru.

Выбирайте плагин в зависимости от задач: для разовых операций подойдет Sticky Posts Manager, для комплексного управления — Clearfy Pro.

Советы по работе с закрепленными сообщениями

При работе с закрепленными постами учитывайте следующие рекомендации:

  • Не злоупотребляйте закреплением — слишком много закрепленных сообщений ухудшают восприятие и снижают эффект.
  • Перед массовым снятием закреплений сделайте резервную копию базы данных, чтобы избежать потери данных.
  • Если используете кастомные типы записей, убедитесь, что они поддерживают sticky-посты, или реализуйте поддержку через код.
  • Для динамического управления закреплениями в зависимости от даты или статуса можно написать кастомные функции с использованием WP Cron.

Пример функции для автоматического снятия закрепления по дате

Пример кода, который снимает закрепление с постов, закрепленных более 30 дней назад:

function wplite_auto_unstick_old_posts() {
    $sticky_posts = get_option('sticky_posts');
    if (empty($sticky_posts)) return;

    $today = current_time('timestamp');
    $changed = false;

    foreach ($sticky_posts as $key => $post_id) {
        $post_date = get_post_time('U', false, $post_id);
        if (($today - $post_date) > 30 * DAY_IN_SECONDS) {
            unset($sticky_posts[$key]);
            $changed = true;
        }
    }

    if ($changed) {
        update_option('sticky_posts', $sticky_posts);
    }
}
add_action('wp_scheduled_auto_unstick', 'wplite_auto_unstick_old_posts');

// Для запуска планировщика добавьте этот код один раз
if (!wp_next_scheduled('wp_scheduled_auto_unstick')) {
    wp_schedule_event(time(), 'daily', 'wp_scheduled_auto_unstick');
}

Такой подход автоматизирует очистку закрепленных постов по времени без вашего вмешательства.

Как автоматизировать удаление неактивных пользователей в WordPress
28.04.2026
Как избежать проблемы с отслеживанием изменений в WordPress
25.03.2026
Как использовать функции WooCommerce в WordPress для разработки
04.12.2025
Как изменить динамический заголовок страницы в WordPress
17.01.2026
Решение проблемы неработающей отправки формы оформления заказа в WooCommerce
06.06.2026