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

В WordPress по умолчанию комментарии включены для записей и страниц, но иногда возникает необходимость отключить их для конкретных типов записей — кастомных или стандартных. Это особенно актуально, если у вас на сайте есть нестандартные CPT (custom post types), для которых комментарии не нужны, либо если вы хотите отключить комментарии для страниц, но оставить их для записей.

Почему важно управлять комментариями по типам записей

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

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

Давайте разберем несколько способов, как отключить комментарии для отдельных типов записей в WordPress.

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

Самый простой способ — через настройки типа записи. Для стандартных записей и страниц можно изменить настройки в редакторе:

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

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

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

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

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

function wpeducation_register_custom_post_type() {
    register_post_type('portfolio', [
        'label' => 'Портфолио',
        'public' => true,
        'supports' => ['title', 'editor', 'thumbnail'], // комментарии не включены
        // другие аргументы
    ]);
}
add_action('init', 'wpeducation_register_custom_post_type');

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

function wpeducation_disable_comments_for_cpt() {
    $post_types = ['portfolio', 'product']; // замените на свои типы
    foreach ($post_types as $post_type) {
        remove_post_type_support($post_type, 'comments');
        remove_post_type_support($post_type, 'trackbacks');
    }
}
add_action('init', 'wpeducation_disable_comments_for_cpt');

Этот код снимает поддержку комментариев и обратных ссылок (trackbacks) для указанных кастомных типов записей.

Полное отключение комментариев для определенных типов записей на фронтенде и в админке

Для более жесткой блокировки можно добавить фильтры, которые будут отключать отображение комментариев и мета-боксов в редакторе:

function wpeducation_disable_comments_status() {
    $post_types = ['portfolio', 'product'];
    global $post;
    if ($post && in_array($post->post_type, $post_types)) {
        return false; // отключить комментарии
    }
    return true;
}
add_filter('comments_open', 'wpeducation_disable_comments_status', 10, 2);
add_filter('pings_open', 'wpeducation_disable_comments_status', 10, 2);

function wpeducation_remove_comments_metabox() {
    $post_types = ['portfolio', 'product'];
    foreach ($post_types as $post_type) {
        remove_meta_box('commentsdiv', $post_type, 'normal');
    }
}
add_action('admin_menu', 'wpeducation_remove_comments_metabox');

Таким образом, в редакторе для указанных типов записей не будет блока комментариев, а сами комментарии будут закрыты.

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

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

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

Вывод комментариев в шаблоне: как избежать ошибки после отключения

Если в шаблоне темы для кастомного типа записи используется вызов функции comments_template(), а комментарии отключены, это может привести к пустым блокам или ошибкам. Чтобы избежать этого, добавьте проверку:

if (comments_open() || get_comments_number()) {
    comments_template();
}

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

Итоги и рекомендации

Управление комментариями по типам записей — важный аспект настройки WordPress. Используйте код из статьи, если хотите точечное решение, либо плагин Clearfy для удобства и расширенных возможностей.

Не забывайте проверять тему на наличие вызовов комментариев в шаблонах, чтобы избежать ошибок при отключении.

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

Как ограничить регистрацию пользователей в WordPress по IP-адресу
24.03.2026
WooCommerce: как правильно настроить отложенный платёж с автоматическим отключением способов оплаты
11.05.2026
WooCommerce: как автоматически удалять старые неоплаченные заказы по срокам
09.07.2026
WooCommerce: автоматическое удаление старого неоплаченного заказа с подробной настройкой
01.07.2026
Как настроить отзывы в WordPress с оценками и модерацией
18.02.2026