acf/schema/format_value/pre/name={field_name}

Обзор

Предварительно фильтрует значения для определённого имени поля до применения форматирования по умолчанию.

Описание

Этот фильтр представляет собой версию 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