Получает данные о блоках (Гутенберг) из переданного контента (строки).
Возвращает
Массив[]
. Данные по блокам.
Использование
parse_blocks( $content );
$content(строка) (обязательный)
Контент, который нужно распарсить.
Примеры
#1 Пример возвращаемых данных
Пусть у нас следующего вида контент:
<!-- wp:gallery {"ids":[11]} -->
<figure class="wp-block-gallery columns-1 is-cropped">
<ul class="blocks-gallery-grid">
<li class="blocks-gallery-item">
<figure>
<img src="https://wp-test.ru/wp-content/uploads/2020/05/2020-landscape-1-1024x656.png" alt=""
data-id="11"
data-full-url="https://wp-test.ru/wp-content/uploads/2020/05/2020-landscape-1.png"
data-link="https://wp-test.ru/my-super-image/"
class="wp-image-11"/>
</figure>
</li>
</ul>
</figure>
<!-- /wp:gallery -->
<!-- wp:cover {"overlayColor":"luminous-vivid-amber"} -->
<div class="wp-block-cover has-luminous-vivid-amber-background-color has-background-dim">
<div class="wp-block-cover__inner-container">
<!-- wp:paragraph {"align":"center","placeholder":"Введите заголовок...","fontSize":"large"} -->
<p class="has-text-align-center has-large-font-size">Супер заголовок блока!</p>
<!-- /wp:paragraph -->
</div>
</div>
<!-- /wp:cover -->
<!-- wp:paragraph -->
<p>Обычный параграф с текстом</p>
<!-- /wp:paragraph -->
Пропустим данный контент через функцию
$parse_content = parse_blocks( $content );
print_r( $parse_content );
Функция вернёт следующий результат:
Array
(
[0] => Array
(
[blockName] => core/gallery
[attrs] => Array
(
[ids] => Array
(
[0] => 11
)
)
[innerBlocks] => Array
(
)
[innerHTML] =>
<figure class="wp-block-gallery columns-1 is-cropped"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img src="https://wp-test.ru/wp-content/uploads/2020/05/2020-landscape-1-1024x656.png" alt="" data-id="11" data-full-url="https://wp-test.ru/wp-content/uploads/2020/05/2020-landscape-1.png" data-link="https://wp-test.ru/my-super-image/" class="wp-image-11"/></figure></li></ul></figure>
[innerContent] => Array
(
[0] =>
<figure class="wp-block-gallery columns-1 is-cropped"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img src="https://wp-test.ru/wp-content/uploads/2020/05/2020-landscape-1-1024x656.png" alt="" data-id="11" data-full-url="https://wp-test.ru/wp-content/uploads/2020/05/2020-landscape-1.png" data-link="https://wp-test.ru/my-super-image/" class="wp-image-11"/></figure></li></ul></figure>
)
)
[1] => Array
(
[blockName] =>
[attrs] => Array
(
)
[innerBlocks] => Array
(
)
[innerHTML] =>
[innerContent] => Array
(
[0] =>
)
)
[2] => Array
(
[blockName] => core/cover
[attrs] => Array
(
[overlayColor] => luminous-vivid-amber
)
[innerBlocks] => Array
(
[0] => Array
(
[blockName] => core/paragraph
[attrs] => Array
(
[align] => center
[placeholder] => Введите заголовок...
[fontSize] => large
)
[innerBlocks] => Array
(
)
[innerHTML] =>
<p class="has-text-align-center has-large-font-size">Супер заголовок блока!</p>
[innerContent] => Array
(
[0] =>
<p class="has-text-align-center has-large-font-size">Супер заголовок блока!</p>
)
)
)
[innerHTML] =>
<div class="wp-block-cover has-luminous-vivid-amber-background-color has-background-dim"><div class="wp-block-cover__inner-container"></div></div>
[innerContent] => Array
(
[0] =>
<div class="wp-block-cover has-luminous-vivid-amber-background-color has-background-dim"><div class="wp-block-cover__inner-container">
[1] =>
[2] => </div></div>
)
)
[3] => Array
(
[blockName] =>
[attrs] => Array
(
)
[innerBlocks] => Array
(
)
[innerHTML] =>
[innerContent] => Array
(
[0] =>
)
)
[4] => Array
(
[blockName] => core/paragraph
[attrs] => Array
(
)
[innerBlocks] => Array
(
)
[innerHTML] =>
<p>Обычный параграф с текстом</p>
[innerContent] => Array
(
[0] =>
<p>Обычный параграф с текстом</p>
)
)
)
Добавить свой пример