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

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

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

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

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

Отключение комментариев через админ-панель WordPress

Самый простой способ — зайти в редактор нужной страницы:

  1. Откройте страницу в редакторе WordPress.
  2. В разделе «Обсуждение» снимите галочку «Разрешить комментарии».
  3. Обновите страницу.

Если блок «Обсуждение» не отображается, включите его через меню «Настройки экрана» в правом верхнем углу.

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

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

Для массового и автоматического решения можно добавить следующий код в файл functions.php вашей темы или дочерней темы:

function wpskills_disable_comments_on_pages() {
    if (is_page(array(42, 'kontakt', 'privacy-policy'))) {
        // Отключаем вывод комментариев
        remove_post_type_support('page', 'comments');
    }
}
add_action('init', 'wpskills_disable_comments_on_pages');

function wpskills_hide_comments_template($open, $post_id) {
    if (is_page(array(42, 'kontakt', 'privacy-policy'))) {
        return false;
    }
    return $open;
}
add_filter('comments_open', 'wpskills_hide_comments_template', 10, 2);
add_filter('pings_open', 'wpskills_hide_comments_template', 10, 2);

В этом примере отключаются комментарии на страницах с ID 42, а также с ярлыками (slug) 'kontakt' и 'privacy-policy'. Замените их на нужные вам идентификаторы или слаги.

Код удаляет поддержку комментариев и отключает их открытие, что полностью скрывает форму и список комментариев.

Объяснение кода

  • remove_post_type_support('page', 'comments') — отключает поддержку комментариев для типа записи page на инициализации.
  • Фильтры comments_open и pings_open возвращают false для выбранных страниц, что блокирует возможность добавления новых комментариев и пингов.

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

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

  • Disable Comments — позволяет отключать комментарии глобально или на выбранных типах записей. В расширенных настройках можно выбрать страницы.
  • WP Disable Comments — простой плагин с опцией отключения комментариев на отдельных страницах.
  • Clearfy Pro — многофункциональный плагин оптимизации, который также позволяет управлять комментариями и отключать их выборочно. Подробнее на wpshop.ru.

Автоматическое отключение комментариев на страницах с определенной меткой

Иногда удобнее отключать комментарии не по ID, а по метке (custom field) или категории. Например, можно создать пользовательское поле disable_comments со значением true на нужных страницах и отключать комментарии программно:

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

Этот метод удобен для гибкого управления состоянием комментариев без изменения кода при каждом изменении.

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

Если на странице уже есть комментарии, их можно удалить через админку вручную или программно:

function wpskills_delete_comments_on_pages() {
    $pages = array(42, 'kontakt', 'privacy-policy');
    foreach ($pages as $page) {
        $page_id = is_numeric($page) ? $page : get_page_by_path($page)->ID;
        $comments = get_comments(array('post_id' => $page_id));
        foreach ($comments as $comment) {
            wp_delete_comment($comment->comment_ID, true);
        }
    }
}
// Запускать один раз вручную
// add_action('init', 'wpskills_delete_comments_on_pages');

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

Вывод

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

Отложенный запуск задач в WordPress без пингов: практическое руководство
14.04.2026
WooCommerce: как исправить проблему с неотображением корзины после обновления
04.05.2026
Как правильно удалить кэш в WordPress: пошаговое руководство
10.11.2025
Как удалить Embed код из WordPress без плагинов
01.01.2026
WordPress: автоматическое удаление пустых параграфов p в контенте
04.12.2025