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

Редактор Gutenberg, введённый в WordPress с версии 5.0, стал стандартным визуальным редактором для создания контента. Однако иногда возникает необходимость отключить его для определённых типов записей (post types), например, для кастомных типов или страниц, где классический редактор или собственные метабоксы работают лучше. В этой статье мы рассмотрим, как именно это сделать максимально эффективно и без потери функционала.

Почему может потребоваться отключить Gutenberg для отдельных типов записей

Gutenberg — мощный и современный редактор, но он не всегда оптимален для всех задач. Вот несколько причин, почему стоит отключить его для отдельных типов записей:

  • Кастомные типы записей с уникальными метабоксами, которые плохо сочетаются с блоковым редактором.
  • Существующие сайты с большим количеством контента, созданного классическим редактором, где переход на Gutenberg может вызвать баги.
  • Плагины и темы, которые не поддерживают блоки для определённых типов записей.
  • Желание сохранить привычный классический интерфейс для простоты и скорости работы с определёнными записями.

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

Способы отключения Gutenberg для конкретных типов записей

Использование плагина Disable Gutenberg

Один из самых популярных и простых способов — использовать плагин Disable Gutenberg. Он позволяет отключать Gutenberg глобально или для выбранных типов записей, ролей пользователей и т.д.

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

add_filter('disable_gutenberg_post_types', function($post_types) {
    $post_types[] = 'product'; // Добавляем тип записи, для которого отключаем Gutenberg
    return $post_types;
});

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

Отключение Gutenberg через функцию в functions.php

WordPress предоставляет фильтр use_block_editor_for_post_type, который позволяет управлять включением или отключением блокового редактора для любого типа записи. Вот пример функции, отключающей Gutenberg только для кастомного типа записи product и стандартной страницы page:

function wpconfig_disable_gutenberg_for_post_types($use_block_editor, $post_type) {
    $disabled_post_types = array('product', 'page'); // Типы записей для отключения Gutenberg
    if (in_array($post_type, $disabled_post_types)) {
        return false; // Отключаем Gutenberg
    }
    return $use_block_editor; // Для остальных типов оставляем как есть
}
add_filter('use_block_editor_for_post_type', 'wpconfig_disable_gutenberg_for_post_types', 10, 2);

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

Отключение Gutenberg только для отдельных постов или по условию

Иногда нужно отключать редактор не по типу записи, а по другим критериям, например, по ID записи или по роли пользователя. Для этого можно использовать фильтр use_block_editor_for_post, который работает для конкретного поста.

function wpconfig_disable_gutenberg_for_certain_posts($use_block_editor, $post) {
    // Отключаем Gutenberg для поста с ID 123
    if ($post && in_array($post->ID, array(123, 456))) {
        return false;
    }
    // Отключаем для роли 'editor'
    if (current_user_can('editor')) {
        return false;
    }
    return $use_block_editor;
}
add_filter('use_block_editor_for_post', 'wpconfig_disable_gutenberg_for_certain_posts', 10, 2);

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

Как вернуть классический редактор и сохранить метабоксы

При отключении Gutenberg важно убедиться, что классический редактор подключён и работает корректно. Для этого можно установить плагин Classic Editor или добавить поддержку классического редактора в код:

add_filter('use_block_editor_for_post_type', function($use_block_editor, $post_type) {
    if (in_array($post_type, array('product', 'page'))) {
        return false;
    }
    return $use_block_editor;
}, 10, 2);

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

Пример простого плагина для отключения Gutenberg для custom post type

Для удобства можно оформить отключение Gutenberg в виде собственного плагина. Вот минимальный пример:

<?php
/**
 * Plugin Name: WPConfig Disable Gutenberg for Products
 * Description: Отключает редактор Gutenberg для типа записи product
 * Version: 1.0
 * Author: WPConfig
 */

function wpconfig_disable_gutenberg_for_products($use_block_editor, $post_type) {
    if ($post_type === 'product') {
        return false;
    }
    return $use_block_editor;
}
add_filter('use_block_editor_for_post_type', 'wpconfig_disable_gutenberg_for_products', 10, 2);

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

Заключение: рекомендации по отключению Gutenberg

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

Не забывайте проверять работу метабоксов и плагинов после отключения Gutenberg, а при необходимости используйте плагин Classic Editor, чтобы обеспечить стабильную работу классического редактора.

Таким образом, вы сможете сохранить удобство работы с контентом и совместимость с вашим функционалом, не жертвуя современными возможностями WordPress.

Как создать собственный REST API endpoint в WordPress: подробное руководство
08.11.2025
Как удалить и заблокировать плагин в WordPress: практическое руководство с примерами
26.01.2026
Как добавить многоязычность в WordPress без плагинов: пошаговое руководство
14.11.2025
Как автоматизировать очистку неиспользуемых переходных в WordPress
05.02.2026
Как создать автозапуск функций в WordPress без использования WP-Cron
08.01.2026