функция since 5.0.0

has_block()

Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.

Сигнатура

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

Описание

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

Оригинал (английский)

This test optimizes for performance rather than strict accuracy, detecting whether the block type exists but not validating its structure and not checking synced patterns (formerly called reusable blocks). For strict accuracy, you should use the block parser on post content.

See also

Параметры

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

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

bool

Исходный код

wp-includes/blocks.php:849

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.

Что будем искать? Например,Продвижение

Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.