WordPress как на ладони

has_blocks()WP 5.0.0

Определяет, содержит ли указанная строка или контент указанной записи блоки Гутенберг.

Определяет наличие блока по конструкции <!-- wp: в переданном контенте.

В целях оптимизации эта функция лишь определяет наличие блоков, но не проверяет их структуру. Для высокой точности следует использовать парсер блоков: parse_blocks().

Используйте has_block(), чтобы проверить есть ли в строке указанный блок.

Основа для: has_block()
1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.04 сек (скорость света) | PHP 7.2.5, WP 5.0

Хуков нет.

Возвращает

true|false. true - имеет блок(и), false - не имеет.

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

has_blocks( $post );
$post(число/строка/WP_Post/null)
ID или объект записи, в контенте которой нужно проверить наличие блоков. Или можно просто передать строку (контент).
По умолчанию: global $post

Примеры

0

#1 Проверим строку на наличие блоков

$content = '
<!-- wp:paragraph -->
<p>Это контент обычной записи. Спасибо за внимание!</p>
<!-- /wp:paragraph -->
';

if ( has_blocks( $content ) ) {
	echo 'Контент имеет блоки'; // Выведет на экран эту строку
} else {
	echo 'Контент не имеет блоков';
}

Заметки

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

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

Код has_blocks() WP 6.4.3

function has_blocks( $post = null ) {
	if ( ! is_string( $post ) ) {
		$wp_post = get_post( $post );

		if ( ! $wp_post instanceof WP_Post ) {
			return false;
		}

		$post = $wp_post->post_content;
	}

	return str_contains( (string) $post, '<!-- wp:' );
}
campusboy 4742youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 9601
1 комментарий
    Войти