Отключаем Gutenberg на определённых шаблонах страниц

В целом у вас не должно возникнуть больших трудностей при адаптации обычных контентных страниц сайта под Gutenberg. Однако всё меняется, если мы говорим о комплексных шаблонах страниц.

Но вполне возможно, что вам и не надо отключать Gutenberg, а можно добавить каких-то полей настроек в сайдбар, у меня об этом есть даже целый видеокурс.

Про плагин Classic Editor я думаю вы уже слышали, также я упоминал его в посту, когда рассказывал про способы отключения Gutenberg.

Там же я упоминал и про хук use_block_editor_for_post_type, и его же мы и будем использовать сегодня.

В хуке есть два параметра:

  • $can_edit (логический) – ну как бы использовать или нет Gutenberg,
  • $post_type (строка) – название типа записи.

Может показать, что параметров недостаточно для того, чтобы законнектиться к текущему используемому шаблону страницы, но нет, у нас же с вами ещё есть доступ к $_GET[ 'post' ], в которой хранится ID текущего редактируемого поста.

Ниже готовый код, если не знаете, куда вставлять, читайте это.

add_filter( 'use_block_editor_for_post_type', 'truemisha_no_gutenberg_for_page_template', 25 );
 
function truemisha_no_gutenberg_for_page_template( $can_edit ) {
 
	if( empty( $_GET[ 'post' ] ) ) {
		return $can_edit;
	}
 
	// перечисляем шаблоны страниц, которые должны редактироваться без гутенберг
	$excluded_templates = array(
		'template-fullwidth.php',
		'template-contact.php'
	);
 
	// определяем шаблон текущей редактируемой страницы
	$template = get_page_template_slug( intval( $_GET[ 'post' ] ) );
 
	// находится ли этот шаблон в массие неразрешённых шаблонов?
	if( in_array( $template, $excluded_templates ) ) {
		$can_edit = false;
	}
 
	return $can_edit;
 
}

Как в итоге это работает:

  1. Вы создаёте новую страницу / запись / тип записи, и сначала они естественно открываются в редакторе Gutenberg, если вы только не отключили для этого типа целиком.
  2. Выбираете шаблон страницы, сохраняете, например как черновик.
  3. Перезагружаете страницу – всё, у вас классический редактор.

Не похоже на самое гладкое решение, но теоретически можно дописать какой-то JavaScript, который будет перезагружать и сохранять страницу за вас при выборе соответствующего шаблона из списка.

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.