Редактор Gutenberg стал стандартом для WordPress начиная с версии 5.0, но не всегда он удобен для всех типов контента или пользователей. В ряде случаев требуется отключить Gutenberg и вернуть классический редактор либо для определённых типов записей, либо для конкретных ролей, или даже для отдельных постов.
Почему нужна настройка отключения Gutenberg для отдельных случаев
Хотя Gutenberg мощный и гибкий, у него есть ограничения и несовместимости с некоторыми кастомными полями, плагинами и метабоксами. Например, если вы используете плагин Clearfy Pro, он предлагает опции оптимизации и управления редакторами, но не всегда встроенных настроек достаточно для тонкой настройки.
Также некоторые редакторы или блоки, которые вы используете, могут не поддерживать Gutenberg или работать с классическим редактором лучше. В таких случаях нужна возможность выборочного отключения.
Отключение Gutenberg для выбранных типов записей
Самый простой способ — использовать фильтр use_block_editor_for_post_type. Ниже пример функции, которую можно добавить в файл functions.php вашей темы или в кастомный плагин.
function wparticles_disable_gutenberg_for_post_types($can_edit, $post_type) {
$disabled_post_types = array('page', 'product'); // Отключаем для страниц и товаров
if (in_array($post_type, $disabled_post_types)) {
return false; // Отключаем Gutenberg
}
return $can_edit;
}
add_filter('use_block_editor_for_post_type', 'wparticles_disable_gutenberg_for_post_types', 10, 2);В этом примере редактор Gutenberg отключен для страниц и товаров WooCommerce. Можно добавить любые кастомные типы постов, например, если у вас есть CPT «portfolio».
Отключение Gutenberg для конкретных постов
Иногда нужно отключить Gutenberg только для отдельных записей, а не для всего типа. Для этого используется фильтр use_block_editor_for_post. Пример:
function wparticles_disable_gutenberg_for_specific_posts($use_block_editor, $post) {
$post_ids_to_disable = array(12, 45, 78); // ID постов
if (in_array($post->ID, $post_ids_to_disable)) {
return false; // Отключаем Gutenberg для указанных постов
}
return $use_block_editor;
}
add_filter('use_block_editor_for_post', 'wparticles_disable_gutenberg_for_specific_posts', 10, 2);Так вы гибко управляете, где использовать классический редактор, а где блоковый.
Отключение Gutenberg для определённых ролей пользователей
Иногда нужно, чтобы, например, редакторы или авторы работали с классическим редактором, а администраторы — с Gutenberg. Для этого можно проверить роль текущего пользователя:
function wparticles_disable_gutenberg_for_roles($use_block_editor, $post) {
if (!is_admin()) {
return $use_block_editor;
}
$user = wp_get_current_user();
$roles_to_disable = array('editor', 'author');
if (array_intersect($roles_to_disable, $user->roles)) {
return false; // Отключаем Gutenberg для редакторов и авторов
}
return $use_block_editor;
}
add_filter('use_block_editor_for_post', 'wparticles_disable_gutenberg_for_roles', 10, 2);Так можно тонко настроить опыт редакции для разных групп пользователей.
Плагины для управления Gutenberg и классическим редактором
Если хочется готовое решение с UI, можно использовать плагин «Classic Editor» — он официально поддерживается WordPress и позволяет полностью отключить Gutenberg или переключаться между редакторами. Но в ряде случаев нужна более детальная настройка, тогда кодовые решения, как выше, незаменимы.
Плагин Clearfy Pro предлагает расширенные настройки оптимизации, включая управление редакторами, а также отключение ненужного функционала, что улучшает производительность и удобство.
Советы по тестированию и отладке
После добавления кода обязательно проверяйте все варианты: разные типы записей, роли пользователей, отдельные посты. Используйте режим отладки WordPress, чтобы отследить ошибки.
Если используете кастомные поля, проверьте их корректное отображение в классическом редакторе.
Для совместимости с плагинами, которые используют редактор, иногда нужно добавить дополнительные проверки или фильтры.
Итог
Добавление настройки отключения редактора Gutenberg для конкретных постов, типов и ролей — полезный инструмент, который позволяет адаптировать админ-панель под нужды сайта и пользователей. Используйте фильтры use_block_editor_for_post_type и use_block_editor_for_post с проверкой ролей, чтобы добиться желаемого результата. Для удобства и расширенных возможностей можно применять плагины, например, Clearfy Pro.