Редактор Gutenberg в WordPress вызвал много споров среди разработчиков и пользователей. Не всем нравится новый блоковый редактор, и иногда возникает необходимость отключить его, чтобы использовать классический редактор или собственные решения. В этой статье мы подробно рассмотрим, как отключить Gutenberg без плагинов, используя только код в functions.php вашей темы или в собственном плагине.
Почему отключать Gutenberg напрямую через код — это хорошая практика
Многие пользователи для отключения Gutenberg устанавливают сторонние плагины, например Classic Editor. Но это приводит к дополнительным зависимостям и может замедлять сайт. Отключение через код позволяет контролировать процесс, не нагружая систему лишними плагинами.
Кроме того, кодовое отключение легко кастомизировать под конкретные условия, например, отключать Gutenberg только для определённых типов записей или ролей пользователей.
Ниже мы рассмотрим несколько способов отключения Gutenberg, начиная с полного отключения и заканчивая выборочным, что даёт гибкость в управлении контентом.
Полное отключение Gutenberg через функцию wpicons_disable_gutenberg
Для полного отключения редактора Gutenberg во всех постах и страницах достаточно добавить следующий код в файл functions.php вашей темы или в файл собственного плагина:
function wpicons_disable_gutenberg() {
add_filter('use_block_editor_for_post', '__return_false', 10);
add_filter('use_block_editor_for_post_type', '__return_false', 10);
}
add_action('init', 'wpicons_disable_gutenberg');
Этот код полностью отключает блоковый редактор и возвращает классический редактор для всех типов записей, поддерживающих редактирование.
Обратите внимание, что это решение простое и быстрое, но не даёт гибкости при необходимости отключать Gutenberg выборочно.
Выборочное отключение Gutenberg по типу записи
Если на вашем сайте есть кастомные типы записей, для которых необходимо оставить Gutenberg, а для стандартных — отключить, используйте следующий подход:
function wpicons_disable_gutenberg_for_cpt($use_block_editor, $post_type) {
if ($post_type === 'post' || $post_type === 'page') {
return false; // отключаем Gutenberg для постов и страниц
}
return $use_block_editor; // для остальных типов оставляем как есть
}
add_filter('use_block_editor_for_post_type', 'wpicons_disable_gutenberg_for_cpt', 10, 2);
Этот фильтр проверяет тип записи и отключает Gutenberg только для постов и страниц. Для других типов, например, кастомных, блоковый редактор останется активным.
Отключение Gutenberg для конкретных ролей пользователей
Иногда бывает нужно, чтобы некоторые пользователи работали только с классическим редактором, а другие — с блоковым. Для решения этой задачи можно использовать следующий код:
function wpicons_disable_gutenberg_for_roles($use_block_editor, $post) {
if (!current_user_can('edit_theme_options')) { // например, отключаем для всех, кроме админов
return false;
}
return $use_block_editor;
}
add_filter('use_block_editor_for_post', 'wpicons_disable_gutenberg_for_roles', 10, 2);
В этом примере Gutenberg отключается для всех пользователей, у которых нет права edit_theme_options — обычно это администраторы. Такой подход полезен, если вы хотите ограничить функционал для редакторов или авторов.
Как вернуть старый классический редактор и почему это важно
После отключения Gutenberg WordPress автоматически использует старый классический редактор. Это позволяет сохранить привычный интерфейс и совместимость с устаревшими плагинами и темами, которые не поддерживают блоки.
Если вы хотите дополнительно улучшить классический редактор, можно добавить поддержку TinyMCE плагинов или настроить админ-панель для удобства работы.
Советы по тестированию и отладке отключения Gutenberg
После внесения изменений обязательно проверьте, что редактор работает так, как вы ожидаете:
- Создайте новую запись и убедитесь, что появился классический редактор.
- Проверьте кастомные типы записей, если применяли выборочное отключение.
- Проверьте работу для разных ролей пользователей.
- Включите режим отладки WordPress (
define('WP_DEBUG', true);) для отслеживания ошибок.
Если вы используете кеширование — очистите кеш после внесения изменений.
Заключение
Отключение Gutenberg в WordPress без плагинов — это эффективный способ быстро вернуть классический редактор и сохранить контроль над функционалом сайта. Используя фильтры use_block_editor_for_post и use_block_editor_for_post_type, вы можете гибко настраивать, где и для кого отключать блоковый редактор.
Пример кода, приведённый в статье, легко интегрируется в любую тему или плагин и улучшит удобство работы с контентом на вашем сайте.