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.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:' ); }