Обзор
Предварительно фильтрует значения для определённого имени поля до применения форматирования по умолчанию.
Описание
Этот фильтр представляет собой версию acf/schema/format_value/pre, специфичную для имени поля. Он позволяет предварительно обработать значения до стандартного форматирования ACF, но только для определённого имени поля.
Динамическая часть имени хука, {field_name}, соответствует имени поля ACF.
История изменений
- Добавлен в версии 6.8.0
Параметры
apply_filters( 'acf/schema/format_value/pre/name={field_name}', $pre_value, $value, $field_object );
$pre_value(mixed) Предварительно отформатированное значение из предыдущих фильтров или null$value(mixed) Исходное значение поля$field_object(array) Объект поля с настройками
Возвращаемое значение
(mixed|null) Предварительно отформатированное значение или null, чтобы использовать форматирование по умолчанию.
Пример
В этом примере задаётся пользовательское форматирование для определённого поля даты события.
/**
* Пользовательское форматирование даты для поля event_date.
*
* @param mixed $pre_value Предварительно отформатированное значение или null.
* @param mixed $value Исходное значение (строка с датой).
* @param array $field_object Объект поля.
* @return mixed Предварительно отформатированное значение или null.
*/
function my_acf_schema_format_event_date( $pre_value, $value, $field_object ) {
if ( ! $value ) {
return $pre_value;
}
// Преобразование в формат ISO 8601 с часовым поясом
$date = DateTime::createFromFormat( 'Y-m-d H:i:s', $value );
if ( ! $date ) {
return $pre_value;
}
// Установка часового пояса из настроек WordPress
$timezone = wp_timezone();
$date->setTimezone( $timezone );
return $date->format( 'c' );
}
add_filter( 'acf/schema/format_value/pre/name=event_date', 'my_acf_schema_format_event_date', 10, 3 );
В этом примере поле product SKU дополняется дополнительными данными.
/**
* Дополнение поля product_sku полными данными о товаре.
*
* @param mixed $pre_value Предварительно отформатированное значение или null.
* @param mixed $value Исходное значение SKU.
* @param array $field_object Объект поля.
* @return mixed Предварительно отформатированное значение или null.
*/
function my_acf_schema_format_product_sku( $pre_value, $value, $field_object ) {
if ( ! $value ) {
return $pre_value;
}
// Поиск товара по SKU во внешней системе
$product = my_get_product_by_sku( $value );
if ( ! $product ) {
return $value; // Вернуть SKU без изменений
}
return array(
'@type' => 'Product',
'sku' => $value,
'name' => $product->name,
'description' => $product->description,
'offers' => array(
'@type' => 'Offer',
'price' => $product->price,
'priceCurrency' => 'USD',
),
);
}
add_filter( 'acf/schema/format_value/pre/name=product_sku', 'my_acf_schema_format_product_sku', 10, 3 );
Обновлено: 30.09.2026