Диагностика: зачем и когда нужно удалять блоки Gutenberg
Редактор Gutenberg в WordPress предлагает множество блоков для создания контента. Однако не все они нужны на конкретном сайте — лишние блоки могут путать пользователей, замедлять загрузку редактора и усложнять интерфейс. Часто требуется убрать стандартные блоки или сторонние, чтобы ограничить выбор или повысить удобство.
Проверьте текущий набор блоков в редакторе, создавая новую запись и открывая список доступных блоков (кнопка “+ Добавить блок”). Если среди них есть блоки, которые не должны использоваться, можно их отключить.
Как удалить блоки Gutenberg через functions.php
Нативный способ — использовать действие allowed_block_types_all. Фильтр позволяет задать точный список разрешённых блоков в редакторе для всех пользователей или для конкретных ролей.
Пример: отключение стандартных блоков, разрешая только параграф, заголовок и изображение
add_filter('allowed_block_types_all', function($allowed_blocks, $editor_context) {
// Проверяем, что мы в редакторе записи или страницы
if ($editor_context->post) {
return [
'core/paragraph',
'core/heading',
'core/image'
];
}
return $allowed_blocks;
}, 10, 2);Этот код помещаем в functions.php активной темы или в плагин для кастомных функций.
Удаление блоков сторонних плагинов
Чтобы убрать блоки, добавленные плагинами, нужно знать их имена. Для этого откройте список блоков в редакторе, наведите на блок и в инструментах разработчика посмотрите атрибут data-type. Например, блок плагина может называться plugin/block-name. Добавьте его в массив разрешённых или исключите.
Удаление панелей и кнопок из панели инструментов Gutenberg
Иногда нужно убрать не блоки, а элементы интерфейса редактора — например, панель форматирования или кнопки.
Для этого используют JavaScript с хуком enqueue_block_editor_assets:
add_action('enqueue_block_editor_assets', function() {
wp_add_inline_script('wp-blocks', "
wp.domReady(() => {
// Скрыть панель форматирования текста
const toolbar = document.querySelector('.edit-post-header-toolbar');
if (toolbar) {
toolbar.style.display = 'none';
}
});
");
});Такой подход требует точной настройки селекторов, которые могут изменяться в новых версиях WordPress.
Проверка результата
- Откройте страницу создания или редактирования записи.
- Нажмите кнопку добавления блока.
- Убедитесь, что в списке нет удалённых блоков.
- Проверьте, что редактор работает без ошибок в консоли браузера.
Частые ошибки и их исправление
- Код не работает вообще: убедитесь, что код добавлен в файл
functions.phpактивной темы или в плагин, и что синтаксис правильный. - Удаление блоков не происходит: проверьте, что фильтр применён с параметрами (10, 2) — без второго аргумента
$editor_contextсписок может не фильтроваться корректно. - JavaScript для удаления панелей не срабатывает: проверьте правильность селектора и загрузку скрипта в редакторе, убедитесь, что хук
enqueue_block_editor_assetsиспользуется. - Блоки появляются снова после обновления WordPress: стандартные блоки могут изменяться, проверяйте актуальность имён блоков.
Практические советы по безопасности и производительности
- Не удаляйте блоки, которые могут понадобиться для SEO или важных функций сайта.
- Используйте кеширование и минимизацию JS, чтобы не замедлять редактор.
- Тестируйте изменения на тестовом сайте, чтобы избежать проблем с совместимостью плагинов.
Сравнение способов удаления блоков Gutenberg
| Метод | Плюсы | Минусы |
|---|---|---|
| Фильтр allowed_block_types_all | Чистый PHP, легко поддерживать, без JS | Требует точных имён блоков, не удаляет UI элементы |
| JavaScript через enqueue_block_editor_assets | Удаляет UI элементы, гибко | Зависит от структуры DOM, может ломаться после обновлений |