Привязка блоков

Обзор

Привязки блоков позволяют подключать атрибуты блоков WordPress к значениям полей ACF. Вместо жесткого задания контента в блоках Heading, Paragraph, Image или Button вы можете привязать содержимое блока к полю ACF. Когда значение поля меняется, содержимое привязанного блока автоматически обновляется.

ACF 6.8.1 добавляет полную поддержку API WordPress Block Bindings, включая интеграцию с интерфейсом панели Attributes в редакторе и живой предпросмотр с редактированием на месте.

Требования

  • ACF PRO 6.8.1 или новее
  • WordPress 6.7 или новее
  • Включен датастор ACF

Включение привязки блоков

Для привязки блоков нужно включить две вещи:

1. Включите датастор

Добавьте этот фильтр в свою тему или плагин:

add_filter( 'acf/settings/enable_datastore', '__return_true' );

См. acf/settings/enable_datastore для других вариантов.

2. Включите поля для привязок

Для каждого поля, которое вы хотите использовать с привязкой блоков, включите «Разрешить доступ к значению в интерфейсе редактора» в настройках поля:

  1. Отредактируйте группу полей
  2. Выберите поле, которое хотите сделать доступным
  3. Перейдите на вкладку Presentation
  4. Включите «Разрешить доступ к значению в интерфейсе редактора»
  5. Сохраните группу полей

В интерфейсе Block Bindings будут отображаться только поля с включенной этой настройкой.

Использование Block Bindings в редакторе

После включения вы сможете привязывать блоки к полям ACF прямо в редакторе с помощью панели Attributes WordPress.

Поддерживаемые блоки

Следующие базовые блоки поддерживают привязку атрибутов:

  • Heading — атрибут content
  • Paragraph — атрибут content
  • Image — атрибуты url, alt и title
  • Button — атрибуты text и url

Привязка блока

  1. Добавьте или выберите поддерживаемый блок (например, Heading)
  2. Откройте боковую панель настроек блока
  3. Найдите панель «Attributes»
  4. Нажмите на атрибут, который хотите привязать (например, «Content»)
  5. Выберите «ACF Field» в качестве источника
  6. Выберите одно из доступных полей ACF

Поддержка интерфейса ACF Block Bindings

Теперь блок будет отображать значение поля ACF, а изменения в поле будут автоматически отражаться в блоке.

Живой предпросмотр и редактирование

Когда привязки блоков включены вместе с датастором, вы получаете живой предпросмотр и редактирование на месте:

  • Обновления в реальном времени — изменения в полях ACF немедленно обновляют привязанные блоки в редакторе
  • Редактирование на месте — нажмите на привязанный блок и редактируйте его содержимое напрямую
  • Двунаправленная синхронизация — изменения, внесенные в блоке, синхронизируются обратно в поле ACF

Это создает бесшовный процесс редактирования, в котором привязанные блоки ведут себя как нативный контент Gutenberg, оставаясь при этом основанными на значениях ваших полей ACF.

Поддерживаемые типы полей

Привязка блоков работает с типами полей, которые возвращают простые значения, совместимые с атрибутами блоков:

Тип поляПоддерживаетсяПримечания
TextДа
TextareaДа
NumberДаПреобразуется в строку
EmailДа
URLДа
PasswordДа
SelectДаТолько одиночное значение
Radio ButtonДа
True/FalseДаВозвращает «true» или «false»
Date PickerДа
Time PickerДа
Color PickerДа
ImageДаВозвращает URL для привязки изображений
FileДаВозвращает URL

Неподдерживаемые типы полей

Сложные типы полей, возвращающие массивы или объекты, не поддерживаются:

  • Repeater
  • Flexible Content
  • Gallery
  • Group (целиком не поддерживается, но под-поля можно привязывать)
  • Relationship (возвращает массив ID)
  • Post Object (если настроен на возврат нескольких значений)
  • Checkbox (возвращает массив)

Форматирование значений

Привязанные значения форматируются для отображения в блоках:

Тип значенияОтображение
СтрокиОтображаются как есть
ЧислаПреобразуются в строку
Булевы значения«true» или «false»
Массивы скалярных значенийОбъединяются через «, »
Объекты/вложенные массивыПустая строка

Программные привязки

Вы также можете создавать привязки в коде с помощью API Block Bindings.

В разметке блока

Добавьте привязки в метаданные блока:

<!-- wp:heading {"metadata":{"bindings":{"content":{"source":"acf/field","args":{"key":"page_title"}}}}} -->
<h2 class="wp-block-heading"></h2>
<!-- /wp:heading -->

В PHP-шаблонах

<?php
$block_content = '<!-- wp:paragraph {"metadata":{"bindings":{"content":{"source":"acf/field","args":{"key":"intro_text"}}}}} --><p></p><!-- /wp:paragraph -->';
echo do_blocks( $block_content );
?>

Привязки изображения

Привяжите блок изображения к полю Image ACF:

<!-- wp:image {"metadata":{"bindings":{"url":{"source":"acf/field","args":{"key":"featured_photo"}},"alt":{"source":"acf/field","args":{"key":"featured_photo_alt"}}}}} -->
<figure class="wp-block-image">
<img src="" alt=""/></figure>
<!-- /wp:image -->

Привязки кнопки

Привяжите текст и URL кнопки:

<!-- wp:button {"metadata":{"bindings":{"text":{"source":"acf/field","args":{"key":"cta_text"}},"url":{"source":"acf/field","args":{"key":"cta_url"}}}}} -->
<div class="wp-block-button">
<a class="wp-block-button__link"></a>
</div>
<!-- /wp:button -->

Отключение привязки для отдельных полей

Чтобы запретить использование поля в привязках, вы можете:

В админ-интерфейсе

Отключить «Разрешить доступ к значению в интерфейсе редактора» на вкладке Presentation поля.

В коде

Установите allow_in_bindings в false при регистрации поля:

acf_add_local_field( array(
    'key'               => 'field_my_field',
    'name'              => 'my_field',
    'type'              => 'text',
    'allow_in_bindings' => false,
) );

Или в JSON-группе полей:

{
    "key": "field_my_field",
    "name": "my_field",
    "type": "text",
    "allow_in_bindings": false
}

Устранение неполадок

Поля не отображаются в панели Attributes

  1. Проверьте, что датастор включен (acf/settings/enable_datastore фильтр возвращает true)
  2. Убедитесь, что для поля включена «Разрешить доступ к значению в интерфейсе редактора»
  3. Убедитесь, что вы используете WordPress 6.7 или новее
  4. Проверьте, что тип поля поддерживается (см. таблицу выше)

Привязанный контент не обновляется

  1. Проверьте консоль браузера на наличие ошибок JavaScript
  2. Убедитесь, что у поля сохранено значение
  3. Попробуйте обновить редактор

Привязки работают в редакторе, но не на фронтенде

Серверный рендеринг должен работать независимо от настроек датастора. Если привязанный контент не отображается на фронтенде:

  1. Проверьте, что у поля есть значение для текущей записи
  2. Убедитесь, что ключ поля в привязке совпадает с вашим полем

Обновлено: 01.06.2026