has_block()
Определяет содержит ли переданная строка или контент переданного поста, указанный блок (редактора блоков, Гунетберга).
Эта проверка оптимизирована для получения наивысшей скорости, а не точности определения блоков, определяется только блок но не его структура. Что бы добиться строгой точности используйте парсер блоков: parse_blocks.
Используйте has_blocks(), чтобы проверить есть ли в строке хоть какой-нибудь блок.
Работает на основе: has_blocks()
1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.02 сек (скорость света) | PHP 7.3.20, WP 5.5.1
Хуков нет.
Возвращает
true|false
. В зависимости от того содержит ли содержимое записи указанный блок.
Использование
has_block( $block_name, $post );
- $block_name(строка) (обязательный)
- Название блока, который нужно найти (определить), то что указывается в HTML комментарии:
<!-- wp:block_name -->
. - $post(число/строка/WP_Post/null)
- Строка или ID поста, или объект поста.
По умолчанию: global $post
Примеры
#1 Содержит ли строка блок галереи
$string= '<!-- wp:gallery {"ids" : [123, 456, 789 ]} -->'; // выведет true if( has_block( 'gallery', $string ) ){ // строка содержит блок gallery }
#2 Содержит ли контент поста блок галереи
// Проверка наличия блока гутенберг в контенте поста if( has_block('gallery' , 1234 ) ){ // пост с ID 1234 содержит блок галереи }
Заметки
- Смотрите: parse_blocks()
Список изменений
С версии 5.0.0 | Введена. |