allowed_block_typesхук-фильтрWP 5.0.0

Устарел с версии 5.8.0. Больше не поддерживается и может быть удален. Смотрите allowed_block_types_all.

Позволяет оставить только нужные блоки для Редактора Блоков (Гутенберга).

Значение фильтра по умолчанию — true — это значит выводить все доступные блоки.

Хук срабатывает на странице редактирования записи при включенном редакторе блоков.

Использование

add_filter( 'allowed_block_types', 'wp_kama_allowed_block_types_filter', 10, 3 );

/**
 * Function for `allowed_block_types` filter-hook.
 * 
 * @param bool|string[] $allowed_block_types Array of block type slugs, or boolean to enable/disable all. Default true (all registered block types supported)
 * @param WP_Post       $post                The post resource data.
 * @param               $string              
 *
 * @return bool|string[]
 */
function wp_kama_allowed_block_types_filter( $allowed_block_types, $post, $string ){

	// filter...
	return $allowed_block_types;
}
$allowed_block_types(true/false/массив)
Массив ярлыков блоков, которые нужно оставить (показывать) в редакторе. Или true/false, чтобы полностью включить или отключить все блоки. Список ярлыков смотрите ниже.
$post(WP_Post)
Объект текущего поста.

Примеры

0

#1 Отключаем все блоки кроме указанных

add_filter( 'allowed_block_types', 'allow_my_block_types', 10, 2 );
function disallow_noneed_block_types( $allowed_blocks, $post ){

	return [
		'core/heading',
		'core/paragraph',
		'core/image',
		'core/list'
	];

}

0

#2 Включаем блоки для типа записи

Этот пример копказывает как включить блок shortcode только для типов записей post и page:

add_filter( 'allowed_block_types', 'allow_my_block_types', 10, 2 );
function allow_my_block_types( $allowed_blocks, $post ){

	$allowed_blocks = [
		'core/image',
		'core/paragraph',
		'core/heading',
		'core/list'
	];

	if( in_array( $post->post_type, ['post','page'] ) ){
		$allowed_blocks[] = 'core/shortcode';
	}

	return $allowed_blocks;

}
0

#3 Список возможных ярлыков для параметра $allowed_block_types

Common blocks
core/paragraph
core/image
core/heading
core/gallery
core/list
core/quote
core/audio
core/cover
core/file
core/video
Formatting
core/table
core/verse
core/code
core/freeform
core/html
core/preformatted
core/pullquote
Layout Elements
core/button
core/columns
core/text-columns
core/media-text
core/more
core/nextpage
core/separator
core/spacer
Widgets
core/shortcode
core/archives
core/categories
core/latest-comments
core/latest-posts
Embeds
core/embed
core-embed/twitter
core-embed/youtube
core-embed/facebook
core-embed/instagram
core-embed/wordpress
core-embed/soundcloud
core-embed/spotify
core-embed/flickr
core-embed/vimeo
core-embed/animoto
core-embed/cloudup
core-embed/collegehumor
core-embed/dailymotion
core-embed/funnyordie
core-embed/hulu
core-embed/imgur
core-embed/issuu
core-embed/kickstarter
core-embed/meetup-com
core-embed/mixcloud
core-embed/photobucket
core-embed/polldaddy
core-embed/reddit
core-embed/reverbnation
core-embed/screencast
core-embed/scribd
core-embed/slideshare
core-embed/smugmug
core-embed/speaker
core-embed/ted
core-embed/tumblr
core-embed/videopress
core-embed/wordpress-tv

Список изменений

С версии 5.0.0 Введена.
Устарела с 5.8.0 Use the {@see 'allowed_block_types_all'} filter instead.

Где вызывается хук

get_allowed_block_types()
allowed_block_types
wp-includes/block-editor.php 141
$allowed_block_types = apply_filters_deprecated( 'allowed_block_types', array( $allowed_block_types, $post ), '5.8.0', 'allowed_block_types_all' );

Где используется хук в WordPress

Использование не найдено.