Обзор
Предварительно фильтрует значения для конкретного имени поля перед форматированием по умолчанию.
Описание
Этот фильтр — версия 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 );
Обновлено: 02.06.2026