Блок WordPress

Оригинальное название: WordPress block

Коротко

Отдельный элемент содержимого в редакторе WordPress — абзац, картинка, кнопка, колонки или вывод данных — со своими настройками, хранимый в HTML записи.

Что такое «Блок WordPress»

С версии 5.0 текст записи в WordPress — это не сплошной HTML, а последовательность самостоятельных элементов. Каждый можно выделить, перетащить, скопировать, настроить отдельно. Из блоков собирают не только статьи, но и шаблоны страниц в блочных темах, области виджетов и меню. Набор блоков расширяется плагинами: формы, слайдеры, таблицы цен, карточки товаров WooCommerce — тоже блоки.

Стоит различать сам экземпляр в тексте и его описание в коде. Тип блока — это определение: какие у него параметры и как он выглядит. Блок в записи — конкретный абзац или картинка этого типа со своими значениями.

Как блок хранится в базе

Редактор сохраняет блоки в обычное поле post_content, отмечая их границы HTML-комментариями. Внутри комментария — имя блока и его атрибуты в формате JSON, между комментариями — готовая разметка:

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Доставка</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Отправляем заказы на следующий день.</p>
<!-- /wp:paragraph -->

Браузер комментарии игнорирует, поэтому страница выглядит как обычный HTML, даже если блоки потом отключить. А редактор по этим меткам восстанавливает структуру. В PHP её разбирают функцией parse_blocks(), наличие блока проверяют через has_block(), а вывод любого блока можно поправить фильтром render_block.

Статические и серверные

У статического блока HTML пишется в базу в момент сохранения: абзац, кнопка, изображение. У динамического в базе остаётся только комментарий с настройками, а разметку при каждом показе строит PHP — так работают «Последние записи» или блок запроса.

Когда редактор ругается на блок

Если HTML статического блока изменили в обход редактора — прямым запросом в базу, импортом или правкой в режиме кода, — при открытии записи редактор сравнит разметку с ожидаемой и сообщит о неожиданном содержимом. Обычно блок можно восстановить или превратить в HTML-блок. Та же ошибка возникает, когда плагин меняет вёрстку своего блока в новой версии без правил миграции старых записей.

Обновлено:

Все термины раздела «WordPress»

Что будем искать? Например,Продвижение