Обзор
Привязки блоков позволяют связать атрибуты блоков 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. Разрешите использование полей в привязках
Для каждого поля, которое вы хотите использовать с привязками блоков, включите параметр «Разрешить доступ к значению в интерфейсе редактора» в настройках поля:
- Откройте группу полей
- Выберите поле, которое хотите сделать доступным
- Перейдите на вкладку «Представление»
- Включите параметр «Разрешить доступ к значению в интерфейсе редактора»
- Сохраните группу полей
В интерфейсе привязок блоков будут отображаться только поля с включенным параметром.
Использование привязок блоков в редакторе
После включения этой функции вы можете связывать блоки с полями ACF непосредственно в редакторе с помощью панели «Атрибуты» WordPress.
Поддерживаемые блоки
Следующие стандартные блоки поддерживают привязку атрибутов:
- Заголовок — атрибут content
- Абзац — атрибут content
- Изображение — атрибуты url, alt и title
- Кнопка — атрибуты text и url
Привязка блока
- Добавьте или выберите поддерживаемый блок (например, «Заголовок»)
- Откройте боковую панель настроек блока
- Найдите панель «Атрибуты»
- Нажмите на атрибут, который хотите связать (например, «Содержимое»)
- Выберите «Поле ACF» в качестве источника
- Выберите одно из доступных полей ACF
Теперь блок будет отображать значение поля ACF, а изменения поля будут отражаться в блоке.
Предварительный просмотр и редактирование в реальном времени
При включении привязок блоков вместе с хранилищем данных становятся доступны предварительный просмотр в реальном времени и редактирование непосредственно в блоке:
- Обновления в реальном времени — изменения полей ACF немедленно обновляют связанные блоки в редакторе
- Редактирование непосредственно в блоке — нажмите на связанный блок и изменяйте его содержимое напрямую
- Двунаправленная синхронизация — изменения, внесенные в блоке, синхронизируются с полем ACF
Это создает удобный процесс редактирования: связанные блоки ведут себя как обычное содержимое Gutenberg, но при этом используют значения полей ACF.
Поддерживаемые типы полей
Привязки блоков работают с типами полей, возвращающими простые значения, совместимые с атрибутами блоков:
| Тип поля | Поддерживается | Примечания |
|---|---|---|
| Текст | Да | |
| Многострочный текст | Да | |
| Число | Да | Преобразуется в строку |
| Да | ||
| 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
}
Устранение неполадок
Поля не отображаются на панели «Атрибуты»
- Убедитесь, что хранилище данных включено (фильтр
acf/settings/enable_datastoreвозвращаетtrue) - Проверьте, что для поля включен параметр «Разрешить доступ к значению в интерфейсе редактора»
- Убедитесь, что вы используете WordPress 6.7 или новее
- Проверьте, поддерживается ли тип поля (см. таблицу выше)
Связанное содержимое не обновляется
- Проверьте консоль браузера на наличие ошибок JavaScript
- Убедитесь, что для поля сохранено значение
- Попробуйте обновить редактор
Привязки работают в редакторе, но не на внешней стороне сайта
Серверный рендеринг должен работать независимо от настроек хранилища данных. Если связанное содержимое не отображается на внешней стороне сайта:
- Проверьте, что для текущей записи задано значение поля
- Убедитесь, что ключ поля в привязке соответствует вашему полю
Обновлено: 30.09.2026

