Как удалить или отключить комментарии в WordPress на определённых страницах

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

Почему важно отключать комментарии на отдельных страницах

Комментарии полезны для блогов и статей, где важно взаимодействие с аудиторией. Но на страницах с информацией, лендингах или юридических документах наличие комментариев может быть нежелательным из-за спама, нерелевантных сообщений или просто для улучшения UX. Отключение комментариев на нужных страницах помогает:

  • Избавиться от спама и ненужной модерации.
  • Повысить скорость загрузки страниц за счёт снижения нагрузки.
  • Улучшить визуальное восприятие и структуру сайта.
  • Убрать лишние элементы интерфейса там, где они неуместны.

Отключение комментариев на определённых страницах через functions.php

Самый лёгкий способ — добавить в файл functions.php вашей темы код, который отключит поддержку комментариев для выбранных страниц по их ID или slug.

Пример кода для отключения комментариев на страницах с ID

function wpmagazin_disable_comments_on_pages($open, $post_id) {
    // Список ID страниц, на которых комментарии нужно отключить
    $disabled_pages = array(12, 34, 56);

    if (in_array($post_id, $disabled_pages)) {
        return false; // Отключаем комментарии
    }
    return $open;
}
add_filter('comments_open', 'wpmagazin_disable_comments_on_pages', 10, 2);
add_filter('pings_open', 'wpmagazin_disable_comments_on_pages', 10, 2);

Этот код проверяет ID текущей страницы и возвращает false для отключения комментариев и пингов. Таким образом, форма комментариев не будет отображаться.

Отключение комментариев по слагу страницы

function wpmagazin_disable_comments_by_slug($open, $post_id) {
    $post = get_post($post_id);
    $disabled_slugs = array('kontakt', 'politika-konfidencialnosti');

    if (in_array($post->post_name, $disabled_slugs)) {
        return false;
    }
    return $open;
}
add_filter('comments_open', 'wpmagazin_disable_comments_by_slug', 10, 2);
add_filter('pings_open', 'wpmagazin_disable_comments_by_slug', 10, 2);

Такой подход удобен, если вы знаете URL-адреса страниц, где комментарии не нужны.

Удаление блока комментариев из шаблона страницы

Даже если отключить комментарии через фильтры, иногда тема сама выводит блок комментариев. Чтобы полностью убрать его, можно изменить шаблон страницы.

Удаление вызова comments_template()

Откройте файл page.php или другой шаблон, отвечающий за вывод нужных страниц, и найдите строку:

<?php comments_template(); ?>

Удалите или закомментируйте эту строку, чтобы блок комментариев не отображался.

Динамическое удаление комментариев в шаблоне

Если шаблон общий, можно обернуть вызов в условие:

if (!in_array(get_the_ID(), array(12, 34, 56))) {
    comments_template();
}

Так комментарии будут отображаться только на нужных страницах.

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

Если вы не хотите править код, существуют плагины, которые позволяют гибко управлять комментариями.

Плагин "Disable Comments"

Один из самых популярных плагинов — Disable Comments. Он позволяет отключать комментарии глобально или для отдельных типов записей. Однако, для точечного отключения комментариев на отдельных страницах нужно использовать его в тандеме с фильтрами.

Плагин "WP Remark" (ссылка с utm)

Если вы хотите не просто отключить комментарии, а заменить их функционал на отзывы или рейтинги, обратите внимание на WP Remark. Этот плагин позволяет гибко настраивать отзывы и комментарии на отдельных страницах, включая их отключение.

Практические советы и рекомендации

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

2. Для больших сайтов с разными типами контента используйте кастомные поля или мета-данные для отметки страниц, где комментарии отключены, и проверяйте их в функциях.

3. Если на сайте много спама, кроме отключения комментариев, стоит использовать антиспам-плагины, например Akismet или интеграции с WPRemark.

4. Не забывайте очищать кэш сайта и браузера после внесения изменений, чтобы увидеть результат сразу.

Пример использования кастомного поля для отключения комментариев

Можно добавить в админке у страницы мета-поле disable_comments со значением 1, а в коде проверить:

function wpmagazin_disable_comments_meta_field($open, $post_id) {
    $disable = get_post_meta($post_id, 'disable_comments', true);
    if ($disable == '1') {
        return false;
    }
    return $open;
}
add_filter('comments_open', 'wpmagazin_disable_comments_meta_field', 10, 2);
add_filter('pings_open', 'wpmagazin_disable_comments_meta_field', 10, 2);

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

Выводы

Управление комментариями на уровне отдельных страниц — задача, которая требует понимания работы хуков и шаблонов WordPress. Благодаря фильтрам comments_open и pings_open, а также возможности модифицировать шаблоны, можно легко настроить отображение комментариев так, как нужно именно вашему сайту. При необходимости используйте проверенные плагины, такие как WP Remark, для расширенного управления отзывами и комментариями.

Как удалить временные файлы кэша в WordPress: практическое руководство
09.03.2026
Как удалить неиспользуемые таксономии в WordPress
22.02.2026
Добавление поля телефона в регистрацию WordPress с подтверждением
07.04.2026
Как создать автоматические резервные копии WordPress без плохой нагрузки на сервер
17.03.2026
Как удалить или отключить комментарии в WordPress на определённых страницах
17.01.2026