Те, кто немного следил за моими выступлениями на митапах и конференции WCSPB2019 и публикациями, могли заметить, что с самого момента, когда Gutenberg стал частью ядра WordPress (конец 2018) я топил за него изо всех сил.
И продолжаю топить.
Тем не менее, я ни разу не отрицаю, что бывают ситуации и сайты, на которых он просто не нужен.
Способ 1. Используем плагин – Classic Editor
«Classic Editor» – официальный плагин для отключения редактора Gutenberg на сайте, он бесплатен и доступен для установки прямо из админки.
После установки этого плагина в Настройки > Написание у вас появятся две опции с радио-кнопками:
Давайте расскажу, как они работают:
- Редактор по умолчанию для всех пользователей – не думаю, что тут нужно что-то объяснять, общая суть в том, что вы можете переключать сайт на Gutenberg и обратно при помощи этой опции не вырубая сам плагин при этом.
- Разрешить пользователям переключение редакторов – тут немного интереснее. Во-первых, рядом с каждым постом появится надпись, при помощи какого редактора он был создан, во-вторых, также любой пост вы сможете открыть как при помощи классического редактора, так и при помощи Gutenberg, скриншот ниже для наглядности.
На этом настройки плагина заканчиваются. А что, если вы хотите, чтобы Gutenberg был только доступен для определённых типов записей например?
Способ 2. При помощи кода
Сразу же включаем или выключаем поддержку Gutenberg при регистрации типа записи
Как вы помните, произвольные типы записей мы регистрируем при помощи функции register_post_type(), так вот, всего лишь один параметр этой функции позволяет нам решить, используем ли Gutenberg или нет.
register_post_type( 'НАЗВАНИЕ ТИПА ЗАПИСИ', array( 'show_in_rest' => false, // Gutenberg отключен, true – включен ...
Хук use_block_editor_for_post_type
Тут очень важно понимать, что если мы поставили параметр show_in_rest
при регистрации типа записи в значение false
, то хук use_block_editor_for_post_type
уже нам не поможет, и мы не сможем включить Gutenberg в этом конкретном случае, однако обратная ситуация работает вполне себе хорошо:
add_filter( 'use_block_editor_for_post_type', function( $use, $post_type ){ if( 'НАЗВАНИЕ ТИПА ЗАПИСИ' === $post_type ) { $use = false; // отключаем } return $use; }, 9999, 2 );
Можем также легко отключить Gutenberg для записей любого (всех) типов кодом:
add_filter( 'use_block_editor_for_post_type', '__return_false' );
P.S. В очередной раз напоминаю, что код можно вставить в functions.php
текущей темы. Однако если тема получает обновления, то лучше использовать для кода functions.php
дочерней темы или создать вообще отдельный плагин.
Источник: misha.blog