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

Диагностика проблемы: зачем отключать комментарии на отдельных страницах

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

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

Как проверить текущие настройки комментариев

  • Перейдите в Настройки > Обсуждение и проверьте, включены ли комментарии по умолчанию.
  • Откройте отдельную страницу в админке и в блоке «Обсуждение» посмотрите, разрешены ли комментарии.
  • Если блок «Обсуждение» не виден, включите его в настройках экрана (вверху справа).

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

Для автоматического отключения комментариев на выбранных страницах добавим код в functions.php вашей темы или в отдельный плагин. Пример кода:

function disable_comments_on_specific_pages( $open, $post_id ) {
    // Массив ID страниц, где нужно отключить комментарии
    $pages_to_disable = array( 12, 34, 56 ); // замените на реальные ID страниц
    if ( in_array( $post_id, $pages_to_disable ) ) {
        return false; // отключаем комментарии
    }
    return $open;
}
add_filter( 'comments_open', 'disable_comments_on_specific_pages', 10, 2 );

Как определить ID страниц? В админке наведите мышь на название страницы, ссылка покажет параметр post=ID.

Расширенный вариант: отключение комментариев по условию slug

function disable_comments_by_slug( $open, $post_id ) {
    $post = get_post( $post_id );
    $slugs_to_disable = array( 'privacy-policy', 'terms-of-service' );
    if ( in_array( $post->post_name, $slugs_to_disable ) ) {
        return false;
    }
    return $open;
}
add_filter( 'comments_open', 'disable_comments_by_slug', 10, 2 );

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

  • Перейдите на фронтенд страниц с отключёнными комментариями – форма комментариев не должна отображаться.
  • В админке откройте страницу для редактирования – блок «Обсуждение» должен показывать комментарии отключены (если виден).
  • Для надёжности очистите кеш сайта и браузера.

Частые ошибки и как их исправить

  • Комментарии не отключаются на фронтенде: Возможно, тема или плагин принудительно выводят форму комментариев. Проверьте шаблоны comments.php и хуки. Можно временно переключиться на дефолтную тему (например, Twenty Twenty-Three) для теста.
  • Код не работает, ошибки PHP: Убедитесь, что код вставлен без синтаксических ошибок и в правильное место functions.php. Проверьте логи ошибок сервера.
  • Использование ID вместо slug или наоборот: Если страницы менялись, ID мог измениться, проверьте их актуальность.

Практические советы по безопасности и производительности

  • Добавляйте код в functions.php дочерней темы, чтобы не потерять при обновлении.
  • Если отключаете комментарии на многих страницах, лучше использовать условие по slug или по шаблону, чтобы не обновлять массив вручную.
  • Для масштабных проектов рассмотрите использование плагина Clearfy Pro с функцией массового отключения комментариев и очисткой базы.
  • Избегайте лишних циклов и запросов в коде, используйте переданные параметры хуков.

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

МетодПлюсыМинусыПример
Через functions.php и ID страниц Просто, быстро Требуется обновлять ID при изменениях
in_array($post_id, [12,34])
По slug страниц Удобно при частых изменениях ID Нужно учитывать уникальность slug
in_array($post->post_name, ['privacy-policy'])
Плагин (например, Disable Comments) Графический интерфейс, массовое отключение Дополнительная нагрузка, меньше контроля https://wordpress.org/plugins/disable-comments/
Как установить ограничения на регистрацию в WordPress по домену email
10.04.2026
Как сделать автоматический отчет по производительности WordPress
26.02.2026
Как удалить все посты из категории в WordPress: практическое руководство
17.11.2025
Как автоматизировать очистку базы данных WordPress от мусорных записей
10.12.2025
Как автоматически изменять meta description в WordPress для улучшения SEO
17.04.2026