has_blocks()
Определяет, содержит ли указанная строка или контент указанной записи блоки Гутенберг.
Определяет наличие блока по конструкции <!-- 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
Примеры
#1 Проверим строку на наличие блоков
$content = '
<!-- wp:paragraph -->
<p>Это контент обычной записи. Спасибо за внимание!</p>
<!-- /wp:paragraph -->
';
if ( has_blocks( $content ) ) {
echo 'Контент имеет блоки'; // Выведет на экран эту строку
} else {
echo 'Контент не имеет блоков';
}
Заметки
- Смотрите: parse_blocks()
Список изменений
| С версии 5.0.0 | Введена. |
Код has_blocks() has blocks WP 6.9.1
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:' );
}