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

Обзор

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

ACF 6.8.1 добавляет полную поддержку API привязок блоков WordPress, включая интеграцию с интерфейсом панели «Атрибуты» редактора, а также предварительный просмотр в реальном времени и редактирование непосредственно в блоке.

Требования

  • 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. Перейдите на вкладку «Представление»
  4. Включите параметр «Разрешить доступ к значению в интерфейсе редактора»
  5. Сохраните группу полей

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

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

После включения этой функции вы можете связывать блоки с полями ACF непосредственно в редакторе с помощью панели «Атрибуты» WordPress.

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

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

  • Заголовок — атрибут content
  • Абзац — атрибут content
  • Изображение — атрибуты url, alt и title
  • Кнопка — атрибуты text и url

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

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

Поддержка интерфейса привязок блоков ACF

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

Предварительный просмотр и редактирование в реальном времени

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

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

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

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

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

Тип поляПоддерживаетсяПримечания
ТекстДа
Многострочный текстДа
ЧислоДаПреобразуется в строку
EmailДа
URLДа
ПарольДа
ВыборДаТолько одиночное значение
ПереключательДа
Да/НетДаВозвращает «true» или «false»
Выбор датыДа
Выбор времениДа
Выбор цветаДа
ИзображениеДаВозвращает URL для привязок изображений
ФайлДаВозвращает URL

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

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

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

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

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

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

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

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

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

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

<!-- 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 );
?>

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

Свяжите блок изображения с полем ACF Image:

<!-- 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 -->

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

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

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

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

В коде

При регистрации поля установите 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
}

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

Поля не отображаются на панели «Атрибуты»

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

Связанное содержимое не обновляется

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

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

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

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

Обновлено: 30.09.2026