# has_block()

URL: https://chugunov.pro/api-wordpress/functions/has_block/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 5.0.0.

## Сигнатура

```php
has_block( string $block_name, int|string|WP_Post|null $post = null ): bool
```

## Описание

Эта проверка оптимизирована для скорости, а не для строгой точности: она определяет наличие типа блока, но не проверяет его структуру и не учитывает синхронизированные паттерны (ранее называвшиеся переиспользуемыми блоками). Для строгой точности следует применять парсер блоков к содержимому записи.
См. alsoparse_blocks()

## Параметры

- `$block_name` `string` — обязательный. Полное имя искомого типа блока.
- `$post` `int|string|WP_Post|null` — необязательный, по умолчанию `null`. Содержимое записи, идентификатор записи или объект записи.
  
  По умолчанию — глобальная переменная $post.

## Возвращаемое значение

`bool`

## Исходный код

Файл: `wp-includes/blocks.php:849`

```php
function has_block( $block_name, $post = null ) {
	if ( ! has_blocks( $post ) ) {
		return false;
	}

	if ( ! is_string( $post ) ) {
		$wp_post = get_post( $post );
		if ( $wp_post instanceof WP_Post ) {
			$post = $wp_post->post_content;
		}
	}

	/*
	 * Normalize block name to include namespace, if provided as non-namespaced.
	 * This matches behavior for WordPress 5.0.0 - 5.3.0 in matching blocks by
	 * their serialized names.
	 */
	if ( ! str_contains( $block_name, '/' ) ) {
		$block_name = 'core/' . $block_name;
	}

	// Test for existence of block by its fully qualified name.
	$has_block = str_contains( $post, '<!-- wp:' . $block_name . ' ' );

	if ( ! $has_block ) {
		/*
		 * If the given block name would serialize to a different name, test for
		 * existence by the serialized form.
		 */
		$serialized_block_name = strip_core_block_namespace( $block_name );
		if ( $serialized_block_name !== $block_name ) {
			$has_block = str_contains( $post, '<!-- wp:' . $serialized_block_name . ' ' );
		}
	}

	return $has_block;
}
```

## История изменений

- 5.0.0 — Introduced.

## Связанные

Использует: [`strip_core_block_namespace`](https://chugunov.pro/api-wordpress/functions/strip_core_block_namespace/), [`has_blocks`](https://chugunov.pro/api-wordpress/functions/has_blocks/), [`get_post`](https://chugunov.pro/api-wordpress/functions/get_post/).
Используется в: [`apply_block_hooks_to_content`](https://chugunov.pro/api-wordpress/functions/apply_block_hooks_to_content/), [`get_the_content`](https://chugunov.pro/api-wordpress/functions/get_the_content/), [`get_post_galleries`](https://chugunov.pro/api-wordpress/functions/get_post_galleries/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/has_block/
