Статический блок

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

Коротко

Блок редактора, итоговая HTML-разметка которого формируется в момент сохранения записи и хранится прямо в её тексте. При выводе страницы PHP его не пересобирает.

Что такое «Статический блок»

Когда автор нажимает «Сохранить», редактор вызывает у каждого блока JavaScript-функцию save. Она превращает атрибуты блока — текст, выравнивание, цвет — в готовый HTML, и этот HTML вместе со служебными комментариями записывается в post_content. На сайте WordPress просто отдаёт сохранённую разметку. Так устроены абзац, заголовок, список, изображение, кнопки, цитата — всё, что не зависит от данных за пределами записи.

Пример сохранённого блока

<!-- wp:paragraph {"align":"center"} -->
<p class="has-text-align-center">Доставка по городу — бесплатно</p>
<!-- /wp:paragraph -->

В комментарии указаны имя блока и атрибуты в JSON, внутри — результат функции save. Именно по этим комментариям редактор при следующем открытии восстанавливает блок, а на сайте они не видны.

Чем отличается от динамического

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

Плюсы статического подхода: не нужен серверный код, страница отдаётся быстрее, а содержимое читается даже при отключённом плагине — останется обычный HTML.

Ошибка валидации

При открытии записи редактор сравнивает сохранённый HTML с тем, что сейчас вернула бы функция save. Если разработчик плагина поменял разметку блока, они не совпадут, и в редакторе появится сообщение, что блок содержит неожиданное или недопустимое содержимое. Чтобы старые записи не ломались, в описание типа блока добавляют массив deprecated с прежними версиями save: редактор узнаёт старую разметку и аккуратно переводит её в новую.

Обновлено:

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

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