Обзор
Фильтрует объекты полей перед обработкой блока.
Описание
Этот фильтр позволяет изменить или заменить объекты полей, которые обрабатываются для вывода JSON-LD в блоках ACF. Верните значение, отличное от null, чтобы переопределить стандартное получение полей.
Журнал изменений
- Добавлено в версии 6.8.0
Параметры
apply_filters( 'acf/schema/block_field_objects', $field_objects, $block, $block_type, $post_id );
$field_objects(array|null) Массив объектов полей илиnullдля использования стандартного получения$block(array) Массив свойств блока$block_type(array) Настройки зарегистрированного типа блока$post_id(int) ID записи, в которой отображается блок
Возврат
(array|null) Изменённый массив объектов полей или null для использования стандартного поведения.
Пример
В этом примере к блоку рецепта добавляются вычисляемые поля.
/**
* Добавляет вычисляемые поля в JSON-LD блока рецепта.
*
* @param array|null $field_objects Массив объектов полей.
* @param array $block Свойства блока.
* @param array $block_type Настройки типа блока.
* @param int $post_id ID записи.
* @return array Изменённые объекты полей.
*/
function my_acf_schema_recipe_block_fields( $field_objects, $block, $block_type, $post_id ) {
if ( $block['name'] !== 'acf/recipe' ) {
return $field_objects;
}
if ( null === $field_objects ) {
$field_objects = array();
}
// Вычисляем общее время на основе данных блока
$prep_time = $block['data']['prep_time'] ?? 0;
$cook_time = $block['data']['cook_time'] ?? 0;
$field_objects['total_time'] = array(
'value' => $prep_time + $cook_time,
'schema_property' => 'totalTime',
'type' => 'number',
);
return $field_objects;
}
add_filter( 'acf/schema/block_field_objects', 'my_acf_schema_recipe_block_fields', 10, 4 );
Обновлено: 02.06.2026