Как отключить редактор Gutenberg / block для определенных типов записей?

С WordPress 5.0 блочный редактор (Gutenberg) – стандарт. Классический TinyMCE ушёл в плагин, но не у всех post type удобен block editor: CPT с кастомными metabox, старыми ACF-экранами, каталогами. Ниже – как отключить Gutenberg точечно по типу записи, целиком или плагином.

Отключить для одного post type (код)

Самый чистый вариант – фильтр use_block_editor_for_post_type в functions.php дочерней темы или в mu-plugin:

add_filter( 'use_block_editor_for_post_type', 'krv_disable_gutenberg_for_types', 10, 2 );

function krv_disable_gutenberg_for_types( $use_block_editor, $post_type ) {
	// Список CPT, где нужен классический редактор
	$disable_for = array( 'product', 'portfolio', 'book' );

	if ( in_array( $post_type, $disable_for, true ) ) {
		return false;
	}

	return $use_block_editor;
}

Подставьте свои slug типов вместо product / portfolio / book. Для записей и страниц slug – post и page.

Отключить для конкретной записи

Если блок-редактор мешает только на отдельных ID:

add_filter( 'use_block_editor_for_post', function ( $use, $post ) {
	$disable_ids = array( 12, 34, 56 );

	if ( $post && in_array( (int) $post->ID, $disable_ids, true ) ) {
		return false;
	}

	return $use;
}, 10, 2 );

Плагины

  • Classic Editor – возвращает старый редактор глобально (или даёт выбор «по умолчанию»). Простой путь, если Gutenberg не нужен нигде.
  • Disable Gutenberg (и аналоги) – гибкие правила: по post type, ролям, шаблонам. Удобно, когда блок-редактор оставляете для блога, но режете на CPT.

Плагины проще сопровождать не-разработчику. Код – меньше зависимостей и предсказуемее на проде, если список CPT фиксирован.

Что учесть

  • Отключение block editor не удаляет уже сохранённые блоки: в классике они видны как HTML-комментарии <!-- wp:... -->.
  • Часть тем и блоков Full Site Editing завязана на Gutenberg – для page/wp_template режьте осторожно.
  • Meta boxes старых плагинов часто «оживают» именно в classic; если metabox пропал в block – точечный disable post type обычно решает.
  • REST и Gutenberg API при disable редактора для CPT всё равно могут использоваться фронтом – это не полный «выключатель» блоков сайта.

Краткий FAQ

Нужно ли отключать Gutenberg везде? Нет. Имеет смысл точечно: CPT с кастомным UI, старые editorial-процессы, совместимость с плагином без block support.

Какой фильтр главный? use_block_editor_for_post_type – по типу, use_block_editor_for_post – по конкретной записи.

Classic Editor vs Disable Gutenberg? Classic – «верни TinyMCE». Disable Gutenberg – правила, где block editor выключить, не обязательно возвращая classic везде.


Комментарии загружаются…