WPTour

Как отключить комментарии в WordPress полностью и частично

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

Отключение комментариев у новых записей

Откройте в админке Настройки → Обсуждение и снимите флажок «Разрешить оставлять комментарии к новым записям». Сохраните изменения. Это настройка по умолчанию: она действует на записи, созданные после её включения, но не меняет статус обсуждения у старых материалов.

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

Как закрыть комментарии у уже опубликованных материалов

Для стандартных записей откройте Записи → Все записи, отметьте нужные материалы, в меню «Действия» выберите «Изменить» и нажмите «Применить». В массовом редактировании установите для комментариев значение «Не разрешать», затем сохраните изменения. Аналогично можно обработать страницы через Страницы → Все страницы.

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

Чтобы закрыть комментарии только у одной записи, откройте её в редакторе и найдите панель «Обсуждение». В блочном редакторе панели можно включить через меню с тремя точками → «Настройки» → «Панели». В классическом редакторе проверьте вкладку «Настройки экрана». Снимите флажок разрешения комментариев и обновите запись. Если панели нет, у типа контента может быть отключена поддержка комментариев или интерфейс изменён плагином.

Отключение для сайта целиком, включая пользовательские типы записей

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

Пример ниже отключает поддержку комментариев и trackback в зарегистрированных типах записей, а также закрывает комментарии и trackback через фильтры WordPress. Фильтры важны: удаление поддержки само по себе не меняет статус обсуждения у уже созданных записей.

<?php
add_action( 'init', function () {
    foreach ( get_post_types( array(), 'names' ) as $post_type ) {
        remove_post_type_support( $post_type, 'comments' );
        remove_post_type_support( $post_type, 'trackbacks' );
    }
}, 100 );

add_filter( 'comments_open', '__return_false', 20, 2 );
add_filter( 'pings_open', '__return_false', 20, 2 );

Установите код как отдельный сниппет, активируйте его и проверьте сайт и админку. Приоритет 100 позволяет обработать типы записей, зарегистрированные стандартным образом на более раннем этапе init. Если плагин регистрирует свой тип позже, укажите более высокий приоритет или отключите поддержку именно у этого типа после его регистрации. Фильтры закрывают обсуждение на уровне WordPress независимо от типа записи.

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

Как отключить комментарии только у определённого типа контента

Для разовой выборки достаточно массового редактирования записей и страниц. Для постоянного правила — например, запретить комментарии у всех материалов пользовательского типа «Новости» — удобнее изменить регистрацию этого типа. В настройке supports указывают поддерживаемые возможности. Если тип записей уже создаёт плагин, найдите его настройку комментариев или обратитесь к документации плагина: правка регистрации через второй сниппет может конфликтовать с обновлениями.

Когда вы контролируете регистрацию пользовательского типа, не добавляйте в supports значение comments. Если тип уже зарегистрирован и нужно только убрать поддержку в админке, используйте после его регистрации вызов remove_post_type_support( 'имя-типа', 'comments' ). Это меняет интерфейс и поддержку типа, но не закрывает автоматически обсуждение у старых записей. Для них отдельно установите статус «Не разрешать» массовым редактированием или примените фильтр comments_open только к нужному типу.

Как проверить, что настройка сработала

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

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

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

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше