Если комментарии на сайте не нужны, их лучше отключить не точечно, а сразу на уровне настроек, старых материалов и темы. Иначе часть записей продолжит принимать комментарии, в шаблоне останется форма, а в админке — лишние разделы и уведомления о модерации. Ниже — рабочая схема, которая закрывает все эти места.
Что именно нужно отключить
В WordPress комментарии живут в нескольких слоях, и отключение только одного из них не даёт полного результата. Обычно нужно сделать три вещи:
- запретить комментарии для новых записей;
- закрыть комментарии на уже опубликованных материалах;
- убрать форму, счётчики и другие элементы из темы, если они всё ещё выводятся.
Если этого не сделать, можно получить ситуацию, когда новые посты комментарии не принимают, но старые продолжают собирать спам, а на сайте всё равно виден блок комментариев.
Отключите комментарии для новых записей
Начинать удобнее с глобальной настройки. Она влияет на новые записи и страницы, которые вы будете создавать дальше.
Откройте в админке раздел Настройки → Обсуждение и снимите галочку «Разрешить оставлять комментарии на новых записях». После сохранения WordPress больше не будет включать комментарии по умолчанию для новых публикаций.
Это не затрагивает уже опубликованные записи. Если на сайте есть старый контент, его нужно обработать отдельно.
Закройте комментарии на старых записях и страницах
Для уже опубликованных материалов есть два удобных варианта: массовое редактирование из списка записей или закрытие через стандартные настройки конкретной записи.
Массово через список записей
Если материалов много, не открывайте каждый пост вручную. В разделе Записи → Все записи выделите нужные записи, в выпадающем списке Массовые действия выберите Изменить и нажмите Применить. В открывшемся блоке найдите параметр Комментарии и установите значение Не разрешать.
После этого сохраните изменения. WordPress закроет комментарии у выбранных записей.
Если нужно обработать не только записи, но и страницы, аналогично откройте Страницы → Все страницы и повторите действие там.
Для отдельных материалов
Иногда удобнее закрыть комментарии только у части контента. Откройте нужную запись в редакторе, найдите блок Обсуждение или пункт в настройках документа и отключите комментарии для этого материала. В классическом редакторе этот блок может быть скрыт — тогда его нужно включить в настройках экрана.
Этот способ полезен, если вы хотите оставить комментарии только на отдельных страницах, например в блоге, но убрать их с лендингов, служебных страниц и новостей.
Как отключить комментарии для всего сайта через код
Если на сайте много типов контента, а в админке неудобно вручную закрывать комментарии, можно принудительно отключить их через код. Этот способ подходит, когда вы точно не хотите использовать комментарии нигде, включая новые записи, страницы и пользовательские типы записей.
Самый безопасный вариант — добавить небольшой код в дочернюю тему или в собственный плагин, а не править файлы основной темы. Перед изменениями сделайте резервную копию.
Код ниже отключает поддержку комментариев и пингбэков у всех типов записей, где они есть, и скрывает форму комментариев на фронтенде:
add_action('init', function () {
$post_types = get_post_types([], 'names');
foreach ($post_types as $post_type) {
if (post_type_supports($post_type, 'comments')) {
remove_post_type_support($post_type, 'comments');
}
if (post_type_supports($post_type, 'trackbacks')) {
remove_post_type_support($post_type, 'trackbacks');
}
}
});
add_filter('comments_open', '__return_false', 20, 2);
add_filter('pings_open', '__return_false', 20, 2);
add_filter('comments_array', '__return_empty_array', 10, 2);Что делает этот код:
remove_post_type_support()убирает поддержку комментариев у типов записей;comments_openиpings_openзакрывают возможность оставлять комментарии и пингбэки;comments_arrayне даёт вывести уже существующие комментарии в шаблоне.
Если вы не уверены, где именно разместить код, лучше использовать дочернюю тему или плагин для фрагментов кода. Так изменения не пропадут после обновления темы.
Уберите лишние элементы из темы
Даже после отключения комментариев WordPress может продолжать показывать в шаблоне блоки, связанные с обсуждением: ссылку «Оставить комментарий», количество комментариев, форму ответа, заголовок секции или метаданные в карточках записей. Это уже вопрос не настроек WordPress, а самой темы.
Что проверить в первую очередь:
- есть ли в шаблоне одиночной записи блок комментариев;
- выводится ли ссылка на комментарии в списках записей;
- не остался ли в сайдбаре или футере виджет последних комментариев;
- не показывает ли тема счётчик комментариев рядом с заголовком или датой.
Если тема использует собственные шаблоны, блок комментариев может быть встроен в файл comments.php или в шаблон одиночной записи. В этом случае его нужно убрать из разметки темы или отключить условным выводом. Если вы не редактируете тему вручную, проверьте настройки внешнего вида: некоторые темы позволяют скрыть комментарии без правки файлов.
После отключения комментариев стоит также удалить виджеты и блоки, которые ссылаются на обсуждения. Иначе на сайте останутся пустые или неактуальные элементы интерфейса.
Что делать с уже существующими комментариями
Отключение комментариев не удаляет старые записи обсуждений из базы данных. Они просто перестают приниматься на новых материалах или скрываются на фронтенде, если тема и код настроены правильно.
Если старые комментарии больше не нужны, их можно удалить вручную в разделе Комментарии в админке. Для большого объёма сначала проверьте, не нужны ли вам отдельные обсуждения как часть контента или истории сайта. Удаление необратимо, поэтому перед массовой очисткой лучше сделать резервную копию базы данных.
Если комментарии не удалять, а только закрыть, они останутся в админке и в базе, но посетители не смогут добавить новые.
Как проверить, что комментарии действительно отключены
После настройки откройте несколько страниц сайта в режиме обычного посетителя и проверьте три вещи:
- под формой записи нет блока комментариев;
- нет ссылки или кнопки для добавления комментария;
- в админке у новых записей комментарии по умолчанию выключены.
Если форма всё ещё видна, причина обычно в теме или кэше. В таком случае очистите кэш сайта и браузера, а затем проверьте шаблон. Если комментарии продолжают появляться только на части материалов, значит у этих записей вручную включён отдельный параметр обсуждения.
На сайтах с кэширующими плагинами или серверным кэшем изменения могут отображаться не сразу. После отключения комментариев имеет смысл сбросить кэш, иначе вы будете смотреть на старую версию страницы.
Когда достаточно настроек, а когда нужен код
| Ситуация | Что делать |
|---|---|
| Комментарии не нужны только на новых записях | Отключить их в Настройки → Обсуждение |
| Нужно закрыть старые записи вручную | Использовать массовое редактирование или настройки конкретных материалов |
| Комментарии не нужны вообще на всём сайте | Добавить код, который отключает поддержку комментариев и скрывает форму |
| Тема всё ещё показывает блоки обсуждений | Убирать элементы из шаблона или через настройки темы |
Если задача простая, обычно хватает стандартных настроек WordPress. Код нужен тогда, когда комментарии должны быть отключены жёстко и без исключений, а тема продолжает их выводить.
В итоге полностью отключить комментарии в WordPress можно без сторонних решений: закрыть их в настройках, обработать старые записи и убрать вывод из темы. Если сделать только один из этих шагов, часть сайта всё равно будет жить по старым правилам.