allowed_block_types
Устарел с версии 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)
- Объект текущего поста.
Примеры
#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' ]; }
#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; }
#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. |
Где вызывается хук
allowed_block_types
wp-includes/block-editor.php 142
$allowed_block_types = apply_filters_deprecated( 'allowed_block_types', array( $allowed_block_types, $post ), '5.8.0', 'allowed_block_types_all' );