Обзор
Привязки блоков позволяют подключать атрибуты блоков 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. Включите поля для привязок
Для каждого поля, которое вы хотите использовать с привязкой блоков, включите «Разрешить доступ к значению в интерфейсе редактора» в настройках поля:
- Отредактируйте группу полей
- Выберите поле, которое хотите сделать доступным
- Перейдите на вкладку Presentation
- Включите «Разрешить доступ к значению в интерфейсе редактора»
- Сохраните группу полей
В интерфейсе Block Bindings будут отображаться только поля с включенной этой настройкой.
Использование Block Bindings в редакторе
После включения вы сможете привязывать блоки к полям ACF прямо в редакторе с помощью панели Attributes WordPress.
Поддерживаемые блоки
Следующие базовые блоки поддерживают привязку атрибутов:
- Heading — атрибут content
- Paragraph — атрибут content
- Image — атрибуты url, alt и title
- Button — атрибуты text и url
Привязка блока
- Добавьте или выберите поддерживаемый блок (например, Heading)
- Откройте боковую панель настроек блока
- Найдите панель «Attributes»
- Нажмите на атрибут, который хотите привязать (например, «Content»)
- Выберите «ACF Field» в качестве источника
- Выберите одно из доступных полей ACF
Теперь блок будет отображать значение поля ACF, а изменения в поле будут автоматически отражаться в блоке.
Живой предпросмотр и редактирование
Когда привязки блоков включены вместе с датастором, вы получаете живой предпросмотр и редактирование на месте:
- Обновления в реальном времени — изменения в полях ACF немедленно обновляют привязанные блоки в редакторе
- Редактирование на месте — нажмите на привязанный блок и редактируйте его содержимое напрямую
- Двунаправленная синхронизация — изменения, внесенные в блоке, синхронизируются обратно в поле ACF
Это создает бесшовный процесс редактирования, в котором привязанные блоки ведут себя как нативный контент Gutenberg, оставаясь при этом основанными на значениях ваших полей ACF.
Поддерживаемые типы полей
Привязка блоков работает с типами полей, которые возвращают простые значения, совместимые с атрибутами блоков:
| Тип поля | Поддерживается | Примечания |
|---|---|---|
| Text | Да | |
| Textarea | Да | |
| Number | Да | Преобразуется в строку |
| Да | ||
| 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
- Проверьте, что датастор включен (
acf/settings/enable_datastoreфильтр возвращаетtrue) - Убедитесь, что для поля включена «Разрешить доступ к значению в интерфейсе редактора»
- Убедитесь, что вы используете WordPress 6.7 или новее
- Проверьте, что тип поля поддерживается (см. таблицу выше)
Привязанный контент не обновляется
- Проверьте консоль браузера на наличие ошибок JavaScript
- Убедитесь, что у поля сохранено значение
- Попробуйте обновить редактор
Привязки работают в редакторе, но не на фронтенде
Серверный рендеринг должен работать независимо от настроек датастора. Если привязанный контент не отображается на фронтенде:
- Проверьте, что у поля есть значение для текущей записи
- Убедитесь, что ключ поля в привязке совпадает с вашим полем
Обновлено: 01.06.2026

