Gutenberg: отключаем не нужные блоки
Ограничиваем или отключаем отдельные блоки в редакторе Gutenberg
Новый блочный редактор в WordPress 5.0, который в процессе разработки получил имя Gutenberg, приносит с собой множество новых блоков.
Помимо 34+ дефолтных блоков, вы можете использовать множество других блоков, добавляемых сторонними плагинами.
Это значит, что потенциально перед вашими глазами могут предстать сотни блоков, которые можно использовать для создания контента внутри нового блочного редактора Gutenberg.
Чтоб помочь вам «приструнить» эти блоки, мы покажем вам, как отключать отдельные Gutenberg-блоки в новом редакторе. Вы можете отключить блоки для всех пользователей, или вы можете отключить Gutenberg-блоки для определённых ролей пользователей, пользовательских аккаунтов, определенных типов записей и т.д. Вам это может пригодиться в следующих случаях:
- Если нужно упорядочить интерфейс блокового редактора, убрав блоки, которые вообще не используются.
- Если нужно ограничить типы контента, которые могут создавать другие пользователи. Например, если на вашем сайте работают сторонние авторы, вы, возможно, захотите, чтоб они могли использовать блок для оплаты или что-то другое. Или если вы создаете сайты для клиентов, вы, возможно, не захотите, чтоб те использовали все блоки.
- Если нужно лимитировать типы контента, которые можно включать в определенный тип записи. Например, вам может понадобиться только определенный набор базовых блоков для определенного типа записи.
Приступим. Давайте начнем с двух простых плагинов, которые позволят вам отключать блоки, а потом мы обсудим, как сделать тоже самое, поработав с кодом.
Отключаем блоки «Гутенберга» с помощью плагина
Есть несколько разных плагинов для отключение Gutenberg блоков, но мне больше всего понравились бесплатные плагины Advanced Gutenberg от JoomUnited и Disable Gutenberg, который представляет собой более простую и легковесную опцию. Я покажу, как использовать оба плагина.
Advanced Gutenberg
Advanced Gutenberg позволяет вам создавать разные профили, определяющие доступность блоков. Чтоб отключить блоки глобально, вы можете назначить профиль для всех пользователей, или вы можете создать уникальные профили для отдельных пользователей или пользовательских ролей, что позволит изменять доступность блоков в зависимости от того, какой пользователь использует редактор.
Advanced Gutenberg также добавляет собственный набор блоков, но эти блоки также можно отключить.
Шаг 1: Создайте новый профиль
После установки и активации плагина, взятого с WordPress.org, идем в новую вкладку Adv. Gutenberg, которая находится в вашей панели управления WordPress, и кликаем New Profile:
Затем назовем наш профиль и сохраним его:
Шаг 2: выберете к какому пользователю применить свежесозданный профиль
Теперь идем в Profile Attribution. Здесь вы можете выбрать, какие пользователи смогут использовать данный профиль
Здесь вы также можете выбрать определенные:
- Пользовательские аккаунты
- Пользовательские роли
Либо вы можете выбрать оба варианта:
Если вы хотите отключить блоки для всех пользователей, вы можете выбрать все пользовательские роли и применить этот профиль глобально.
Шаг 3: выберите блоки, которые хотите отключить
Чтоб выбрать блоки, доступные пользователям в этом профиле, откройте Blocks List. По умолчанию все блоки включены, но с помощью кнопочек-ползунков вы можете отключить любые блоки.
Помимо собственных и дефолтных блоков, Advanced Gutenberg также покажет блоки, добавленные плагинами. Все блоки разделены на те же секции, которые вы видите в Block Inserter во время использования редактора.
Например, вот как выглядит отключение блоков, который добавил плагин Stackable:
Disable Gutenberg Blocks
Disable Gutenberg Blocks – это еще один плагин, который поможет вам отключить блоки Гутенберга. В отличии от Advanced Gutenberg, он призван только лишь отключать блоки, что делает его более легковестным, если это для вас важно.
Как бы то ни было, вы сможете только отключить блоки глобально. Нет никакой возможности сделать это для определенных пользователей, как это было с Advanced Gutenberg.
Устанавливаем и активируем плагин, с помощью WordPress.org, потом идем в Settings → Disable Blocks и начинаем его использовать
Чтоб отключить какие-либо блоки, просто кликаем Disable напротив нужных:
Вы также можете использовать массовое отключение блоков, доступное по средством выпадающего меню и чекбоксов.
Отключенные блоки становятся серыми.
Как отключить блоки блочного редактора Gutenberg используя собственный код
Если вы не хотите использовать для отключения блоков редактора плагины, то можете сделать работу вручную с помощью собственного кода, используя фильтр, корректирующий доступность типов блоков.
Код нужно вставить в functions.php вашей дочерней темы, или вы можете использовать плагин типа Code Snippets, который позволяет управлять кодом. Или вы даже можете создать кастомный плагин.
Метод таков: вместо того, чтоб перечислять блоки, которые нужно отключить, просто нужно указать блоки, которые нужно оставить включенными, а все остальное отключиться само.
Вот базовый кодовый сниппет, который мы будем использовать:
function my_allowed_block_types( $allowed_block_types, $post ) { return array( 'core/paragraph' ); } add_filter( 'allowed_block_types', 'my_allowed_block_types');
В нашем пример будет включен только блок «параграф», а остальные отключатся автоматически.
Чтоб включить больше блоков, просто добавьте блоковые слаги в диапазон, как в примере:
function my_allowed_block_types( $allowed_block_types, $post ) { return array( 'core/paragraph', 'core/image', 'core/heading', 'ugb/button' ); } add_filter( 'allowed_block_types', 'my_allowed_block_types');
Чтоб найти слаги блоков, которые нужно включить в диапазон, вы можете использовать Gutenberg редактор кода. К примеру, слаг для блока плагина Stackable, который называется Button — это ugb/button:
При желании можно продолжить модифицировать базовый кодовый сниппет, чтоб можно было применить фильтр к определенным типам записей.
В том случае, если вы решили вообще не использовать Гутенберг на своем сайте, прочитайте статью о том, как правильно его отключить вовсе в последней редакции WordPress.
Я думала что блоки нужно отключать чтобы кода стало меньше и сайт быстрее загружался. А оказывается это делается лишь для того, чтобы их просто не было в списке блоков, типа чтобы глаза не разбегались от большого их количества.