ACF Blocks: использование get_block_wrapper_attributes()

Обзор

Функция get_block_wrapper_attributes() позволяет использовать стили, встроенные в нативные supports WordPress для блока, такие как цвета фона и текста, отступы, поля и т. д.

В редакторе блоков это автоматически выводится для вас на обертке, которую WordPress добавляет вокруг вашего блока:

Пример обертки, которую WordPress добавляет вокруг вашего блока в редакторе блоков при использовании get_block_wrapper_attributes().
 

По этой причине не стоит всегда применять get_block_wrapper_attributes в PHP-шаблоне блока ACF. Если попытаться использовать эту функцию при рендеринге блока в редакторе, вы получите предупреждение PHP, а вывода не будет из-за того, как блоки ACF рендерятся изолированно от остальной части страницы.

Вместо этого используйте переменную ACF $is_preview, чтобы понять, когда ваш блок выводится на фронтенде, и затем используйте get_block_wrapper_attributes(), чтобы добавить все стили, выбранные для вашего блока.

Пример применения get_block_wrapper_attributes() в правильном месте.
 

Следующий код гарантирует, что мы не находимся в режиме предпросмотра, прежде чем вывести атрибуты обертки.

<?php $attrs = $is_preview ? ' ' : get_block_wrapper_attributes(); ?>
<div
    data-demo-hint="Это внешняя обертка в моем шаблоне"
    id="<?php echo esc_attr( $id ); ?>"
    <?php echo $attrs; ?>
>
   // Вывод блока здесь.
</div>

Это означает, что структуры DOM немного отличаются на бэкенде и фронтенде, поскольку ваши стили применяются на один уровень глубже. Если это проблема, можно обойти ее, добавив новый элемент-обертку для размещения стилей и применяя его только к виду на фронтенде:

<?php if ( ! $is_preview ) { ?>
    <div id="<?php echo esc_attr( $id ); ?>" <?php echo get_block_wrapper_attributes(); ?>>
<?php } ?>
    // Обычный шаблон блока находится здесь
<?php if ( ! $is_preview ) { ?>
    </div>
<?php } ?>

Обновлено: 01.06.2026