В этой статье мы рассмотрим функцию parse_blocks()
в WordPress, которая используется для парсинга контента и возврата массива блоков Gutenberg. Эта функция полезна для разработчиков, которые хотят анализировать или модифицировать структуру блоков в постах и страницах.
Описание функции
Функция parse_blocks()
разбирает контент поста, содержащий блоки Gutenberg, и возвращает его в виде массива блоков.
parse_blocks( $content )
Параметры:
$content
(строка): Контент, который нужно распарсить.
Возвращаемое значение:
- Массив блоков.
Примеры использования
Рассмотрим несколько примеров использования функции parse_blocks()
.
Парсинг контента поста и вывод названий блоков
Этот пример показывает, как распарсить контент поста и вывести названия всех блоков:
function display_block_names( $post_id ) {
$post = get_post( $post_id );
$blocks = parse_blocks( $post->post_content );
foreach ( $blocks as $block ) {
echo '<p>Block Name: ' . esc_html( $block['blockName'] ) . '</p>';
}
}
Получение всех абзацев из контента
Вы можете получить все абзацы из контента, распарсив его и отфильтровав блоки типа core/paragraph
:
function get_all_paragraphs( $content ) {
$blocks = parse_blocks( $content );
$paragraphs = array();
foreach ( $blocks as $block ) {
if ( $block['blockName'] === 'core/paragraph' ) {
$paragraphs[] = $block['innerHTML'];
}
}
return $paragraphs;
}
// Пример использования:
$content = '<!-- wp:paragraph --><p>Первый абзац.</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>Второй абзац.</p><!-- /wp:paragraph -->';
$paragraphs = get_all_paragraphs( $content );
foreach ( $paragraphs as $paragraph ) {
echo $paragraph;
}
Изменение контента определённого блока
Этот пример показывает, как изменить контент всех блоков типа core/heading
в посте:
function modify_heading_blocks( $content ) {
$blocks = parse_blocks( $content );
foreach ( $blocks as &$block ) {
if ( $block['blockName'] === 'core/heading' ) {
$block['innerHTML'] = '<h2>Modified Heading</h2>';
}
}
return serialize_blocks( $blocks );
}
// Пример использования:
$content = '<!-- wp:heading --><h2>Original Heading</h2><!-- /wp:heading -->';
$modified_content = modify_heading_blocks( $content );
echo $modified_content;
Подсчёт количества блоков в контенте
Этот пример показывает, как подсчитать количество блоков в контенте:
function count_blocks( $content ) {
$blocks = parse_blocks( $content );
return count( $blocks );
}
// Пример использования:
$content = '<!-- wp:paragraph --><p>Текст</p><!-- /wp:paragraph --><!-- wp:heading --><h2>Заголовок</h2><!-- /wp:heading -->';
$block_count = count_blocks( $content );
echo 'Количество блоков: ' . $block_count;
Заключение по parse_blocks
Функция parse_blocks()
предоставляет разработчикам мощный инструмент для анализа и модификации структуры блоков в контенте WordPress. Используя её, можно легко извлекать, изменять и подсчитывать блоки в постах и страницах.
Попробуйте интегрировать parse_blocks()
в ваши проекты, чтобы улучшить управление контентом и создать более динамичные и интерактивные сайты. Если у вас есть вопросы или предложения, оставляйте комментарии ниже!