/ Wordpress / Gutenberg

Gutenberg

HIT

27.02.2019

1259

Данная статья будет всецело посвящена новому редактору WP — Gutenberg.

По скорости обновления записи этот редактор сделал огромный скачок по сравнению с классическим.

Принудительное включение в WC

По умолчанию Guttenberg для Woocommerce отключен, чтобы включить его — нужно использовать эту функцию:

// Активировать Gutenberg для Woocommerce
function wplook_activate_gutenberg_products($can_edit, $post_type){
	if($post_type == 'product'){
		$can_edit = true;
	}
	
	return $can_edit;
}
add_filter('use_block_editor_for_post_type', 'wplook_activate_gutenberg_products', 10, 2);

Отключить Guttenberg

// disable for posts
add_filter('use_block_editor_for_post', '__return_false', 10);

// disable for post types
add_filter('use_block_editor_for_post_type', '__return_false', 10);

Отключить ненужные блоки

Нужно прописывать в js-файле (my-plugin.js):

wp.domReady( function() {
    wp.blocks.unregisterBlockType( 'core/verse' );
} );

И подключить данный скрипт определенным образом:

function my_plugin_blacklist_blocks() {
    wp_enqueue_script(
        'my-plugin-blacklist-blocks',
        plugins_url( 'my-plugin.js', __FILE__ ),
        array( 'wp-blocks', 'wp-dom-ready', 'wp-edit-post' )
    );
}
add_action( 'enqueue_block_editor_assets', 'my_plugin_blacklist_blocks' );
Если в записях ранее были созданы блокируемые плагином блоки, при редактировании их будет выводится ошибка.

Можно также наоборот указать список блоков которые должны быть доступны, остальные отключаться:

wp.domReady( function() {

	var allowedBlocks = [
		'core/paragraph',
		'core/image',
		'core/html',
		'core/freeform'
	];
	 
	wp.blocks.getBlockTypes().forEach( function( blockType ) {
		if ( allowedBlocks.indexOf( blockType.name ) === -1 ) {
			wp.blocks.unregisterBlockType( blockType.name );
		}
	} );

} );

Решение по данному вопросу (от rudrastyh.com) через функцию php. Данный способ более прост и предпочтителен, т.к. изначально не выводит ненужные блоки, а не скрывает их скриптом. Делаем список разрешенных блоков:

add_filter( 'allowed_block_types', 'misha_allowed_block_types' );
 
function misha_allowed_block_types( $allowed_blocks ) {
 
	return array(
		'core/image',
		'core/paragraph',
		'core/heading',
		'core/list'
	);
 
}

Список блоков Gutenberg

Block TypeОписание
ParagraphАбзац текста
ListСписок (нумерованный/ненумерованный)
ImageИзображение
HeadingЗаголовок (h2, h3, h4, h5, 56)
Quote Цитата
CoverИзображение или видео с наложением текста — отлично подходит для заголовков
GalleryГалерея изображений
AudioАудио файлы
FileСсылка на файл
VideoВидео файлы
ClassicБлок с классическим редактором
PullquoteGive special visual emphasis to a quote from your text
TableТаблица
VerseВставка стихотворения. Используйте специальные форматы интервалов
CodeДемонстрация кода
Custom HTMLHTML код
PreformattedТекст, который учитывает интервалы и вкладки, а также позволяет стилизацию
ColumnsБлок, который отображает контент в нескольких столбцах
ButtonPrompt visitors to take action with a custom button.
Media & Text Установка мультимедиа с подписью
MoreОбрезать часть текста
Page BreakРазделитель текста на следующую страницу
SeparatorГоризонтальный разделитель
SpacerПробел между блоками. Можно настроить высоту
ShortcodeБлок для вставки шорткодов
ArchivesВывод архивов постов по датам
CategoriesВывод категорий
Latest CommentsПоследние комментарии
Latest PostsПоследние записи
EmbedВстраивание видео, изображений, твитов, аудио и другого контента из внешних источников

Переместить стили в подвал

Перемещаем стили Gutenberg из шапки в подвал:

add_action( 'wp_print_styles', 'wps_deregister_styles', 100 );
function wps_deregister_styles() { wp_dequeue_style( 'wp-block-library' ); }

Скроем вовсе стили во всех шаблонах кроме записей (post, page и т.д.):

// Proper connection jquery library
function my_scripts_method() {
	if( !is_singular() ) { wp_deregister_style( 'wp-block-library' ); }
}    
add_action( 'wp_enqueue_scripts', 'my_scripts_method', 1 );

Обязательное заполнение полей

В классическом редакторе было просто сделать поля для заполнения, для этого достаточно в полях указывать атрибут required. Но за счет того что Gutenberg на ajax этот способ не действует.

Научится делать поля Gutenberg обязательными

Сделать обязательным выбор категорий и/или меток может плагин Required taxonomies (1000). Всего 3 настройки: к каким типам записей применять, какая таксономия обязательна, текст всплывающего сообщения если таксономия не выбрана.

Ошибки при работе с Gutenberg

В странице не отображается опция Родительская страница

Не обновляется страница

После очистки cookies данная проблема ушла.

Ответ не является допустимым ответом JSON

Проявляется в работе блоков Woocommerce.

Не редактируется визуальная часть поля WYSIWYG

Решается строчкой в wp_config.php

define('CONCATENATE_SCRIPTS', false);

Поделиться в соц. сетях:

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Gutenberg Gutenberg
Перенос сайта wordpress
Рекомендации для васПеренос сайта wordpressOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.