Обзор
Фильтрует объекты полей для конкретного типа блока.
Описание
Этот фильтр — блок-специфичная версия acf/schema/block_field_objects. Он позволяет изменять объекты полей только для конкретного типа блока, не затрагивая другие блоки.
Динамическая часть имени хука, {block_name}, относится к полному имени блока (например, acf/recipe).
Журнал изменений
- Добавлено в версии 6.8.0
Параметры
apply_filters( 'acf/schema/block_field_objects/block_name={block_name}', $field_objects, $block, $block_type, $post_id );
$field_objects(array|null) Массив объектов полей из предыдущих фильтров$block(array) Массив параметров блока$block_type(array) Настройки зарегистрированного типа блока$post_id(int) ID записи, где отображается блок
Возвращаемое значение
(array|null) Изменённый массив объектов полей.
Пример
Этот пример добавляет данные о питании в блок рецепта.
/**
* Добавляем схему питания в блок рецепта.
*
* @param array|null $field_objects Массив объектов полей.
* @param array $block Параметры блока.
* @param array $block_type Настройки типа блока.
* @param int $post_id ID записи.
* @return array Изменённые объекты полей.
*/
function my_acf_schema_recipe_nutrition( $field_objects, $block, $block_type, $post_id ) {
if ( null === $field_objects ) {
$field_objects = array();
}
// Добавляем поля питания с квалифицированными свойствами NutritionInformation
if ( isset( $block['data']['calories'] ) ) {
$field_objects['calories'] = array(
'value' => $block['data']['calories'] . ' калорий',
'schema_property' => 'NutritionInformation.calories',
'type' => 'text',
);
}
if ( isset( $block['data']['protein'] ) ) {
$field_objects['protein'] = array(
'value' => $block['data']['protein'] . ' г',
'schema_property' => 'NutritionInformation.proteinContent',
'type' => 'text',
);
}
return $field_objects;
}
add_filter( 'acf/schema/block_field_objects/block_name=acf/recipe', 'my_acf_schema_recipe_nutrition', 10, 4 );
Обновлено: 02.06.2026