unregister_block_pattern_category()WP 5.5.0

Удаляет ранее зарегистрированную категорию паттернов блоков.

После удаления категория не больше не бдует доступна в списке категорий в редакторе блоков.

Функция полезна, когда нужно скрыть ненужные или конфликтующие категории паттернов, зарегистрированные ядром, темой или плагином, и оставить пользователю только актуальные для темы варианты.

Рекомендую вызывать её на хуке wp_loaded или init (с пониженным приоритетом), чтобы при вызове все категорий уже были зарегистрированны.

Чтобы посмотреть какие категории существуют, используйте:

$all_data = \WP_Block_Pattern_Categories_Registry::get_instance()->get_all_registered();
print_r( $all_data );

Резервную категорию «Uncategorized», удалить таким образом нельзя. Паттерны из удалённой категории автоматически попадают в эту резервную категорию.

Используйте register_block_pattern_category(), когда нужно добавить новую категорию.

Хуков нет.

Возвращает

true|false.

  • true - категория паттернов успешно удалена из реестра.
  • false - категории с таким именем не существует или удалить её невозможно.

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

unregister_block_pattern_category( $category_name );
$category_name(string) (обязательный)
Слаг (внутреннее имя) ранее зарегистрированной категории паттернов блоков (включая неймспейс).

Примеры

-1

#1 Удалим дефолтные категории блоков

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

/**
 * Unregister specific block pattern categories.
 */
add_action( 'wp_loaded', unregister_block_category( ... ) );
function unregister_block_category(): void {
	$disable_cats = [
		'mytheme/landing' => 'Custom category registered in theme',

		'banner'         => 'Bold sections designed to showcase key content.',
		'buttons'        => 'Patterns that contain buttons and call to actions.',
		'columns'        => 'Multi-column patterns with more complex layouts.',
		//'text'           => 'Patterns containing mostly text.',
		//'query'          => 'Display your latest posts in lists, grids or other layouts.',
		//'featured'       => 'A set of high quality curated patterns.',
		'call-to-action' => 'Sections whose purpose is to trigger a specific action.',
		'team'           => 'A variety of designs to display your team members.',
		'testimonials'   => 'Share reviews and feedback about your brand/business.',
		//'services'       => 'Briefly describe what your business does and how you can help.',
		'contact'        => 'Display your contact information.',
		'about'          => 'Introduce yourself.',
		'portfolio'      => 'Showcase your latest work.',
		'gallery'        => 'Different layouts for displaying images.',
		'media'          => 'Different layouts containing video or audio.',
		'videos'         => 'Different layouts containing videos.',
		'audio'          => 'Different layouts containing audio.',
		'posts'          => 'Display your latest posts in lists, grids or other layouts.',
		'footer'         => 'A variety of footer designs displaying information and site navigation.',
		'header'         => 'A variety of header designs displaying your site title and navigation.',
	];

	foreach ( array_keys( $disable_cats ) as $cat_name ) {
		unregister_block_pattern_category( $cat_name );
	}
}

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

С версии 5.5.0 Введена.

Код unregister_block_pattern_category() WP 7.0

function unregister_block_pattern_category( $category_name ) {
	return WP_Block_Pattern_Categories_Registry::get_instance()->unregister( $category_name );
}