В последние годы редактор Gutenberg стал стандартом в WordPress, но не всегда его использование оправдано. Некоторые сайты и темы требуют классического редактора или полностью кастомного решения для редактирования контента. В этой статье мы разберём, как автоматически отключать поддержку Gutenberg для определённых типов записей или условий, используя код и плагины. Это позволит гибко управлять функционалом и избежать конфликтов с существующими решениями.
Почему стоит отключать Gutenberg автоматически
Редактор Gutenberg, хоть и современный, не всегда подходит для всех сайтов. Причины могут быть разными:
- Использование кастомных типов записей с собственными мета-полями и интерфейсом;
- Совместимость с устаревшими плагинами, которые не поддерживают Gutenberg;
- Необходимость использовать классический редактор для удобства контент-менеджеров;
- Оптимизация нагрузки и упрощение интерфейса для определённых разделов сайта.
Отключение Gutenberg выборочно позволяет сохранить его преимущества там, где он нужен, и избежать проблем в остальных местах.
Как отключить Gutenberg для отдельных типов записей через код
Для отключения редактора Gutenberg можно использовать фильтр use_block_editor_for_post_type. Он позволяет вернуть false для указанных типов записей, чтобы WordPress использовал классический редактор.
Добавьте следующий код в файл functions.php вашей темы или в собственный плагин:
function wpbook_disable_gutenberg_for_cpt( $use_block_editor, $post_type ) {
// Список типов записей, для которых Gutenberg отключен
$disabled_post_types = array('product', 'event', 'custom_post');
if (in_array($post_type, $disabled_post_types)) {
return false;
}
return $use_block_editor;
}
add_filter('use_block_editor_for_post_type', 'wpbook_disable_gutenberg_for_cpt', 10, 2);В этом примере Gutenberg отключается для типов записей product, event и custom_post. Вы можете заменить их на нужные вам типы, например, page или post.
Дополнительная фильтрация по ID записи
Если нужно отключать Gutenberg не только по типу записи, но и по конкретным ID, можно использовать фильтр use_block_editor_for_post:
function wpbook_disable_gutenberg_for_specific_posts( $use_block_editor, $post ) {
// ID записей, где Gutenberg отключаем
$disabled_post_ids = array(123, 456, 789);
if (in_array($post->ID, $disabled_post_ids)) {
return false;
}
return $use_block_editor;
}
add_filter('use_block_editor_for_post', 'wpbook_disable_gutenberg_for_specific_posts', 10, 2);Отключение Gutenberg с помощью плагинов
Если вы не хотите писать код, можно воспользоваться плагинами, которые позволяют управлять включением и отключением редактора:
- Classic Editor — официальный плагин WordPress, который полностью отключает Gutenberg и возвращает классический редактор. Подходит, если Gutenberg не нужен нигде.
- Disable Gutenberg — позволяет гибко отключать Gutenberg по ролям пользователей, типам записей, шаблонам страниц и даже по URL. Идеально для селективного управления.
Рассмотрим пример настройки плагина Disable Gutenberg. После установки в настройках можно выбрать:
- Отключать Gutenberg для определённых ролей (например, редактор, автор);
- Отключать Gutenberg для определённых кастомных типов записей;
- Отключать Gutenberg на страницах с конкретными шаблонами;
- Выбирать исключения, где Gutenberg должен работать.
Практическое применение: отключение Gutenberg для типичного кастомного типа записи
Допустим, у вас есть тип записи portfolio, для которого используется собственный интерфейс редактирования мета-полей через Advanced Custom Fields или другой плагин. В этом случае использование Gutenberg может создавать конфликты и мешать удобству работы.
Пример кода для отключения Gutenberg для portfolio:
function wpbook_disable_gutenberg_for_portfolio( $use_block_editor, $post_type ) {
if ( 'portfolio' === $post_type ) {
return false;
}
return $use_block_editor;
}
add_filter('use_block_editor_for_post_type', 'wpbook_disable_gutenberg_for_portfolio', 10, 2);Такой подход позволяет сохранить классический редактор именно для типа portfolio, не влияя на остальные записи и страницы.
Советы по тестированию и отладке
После внесения изменений важно проверить:
- Для указанных типов записей редактор Gutenberg действительно отключен и отображается классический редактор.
- Нет ошибок JavaScript и конфликтов с другими плагинами.
- Работают все мета-поля и дополнительные интерфейсы редактирования.
Если что-то не работает, проверьте порядок подключения фильтров и наличие кэширования, которое может мешать обновлению настроек.
Выводы
Автоматическое отключение поддержки Gutenberg в WordPress — важный инструмент для кастомизации и обеспечения совместимости сайта с различными решениями. С помощью простого кода или плагинов можно гибко управлять редакторами для разных типов записей, ролей пользователей и условий. Это улучшит опыт контент-менеджеров и поможет избежать конфликтов.