Фильтр acf/schema/format_value

Обзор

Отфильтровать значение поля после применения стандартного форматирования.

Описание

Этот фильтр позволяет изменять значения полей после того, как ACF применил стандартное форматирование JSON-LD. Используйте его для постобработки значений или применения пользовательских преобразований.

Для предварительной обработки до стандартного форматирования используйте acf/schema/format_value/pre.

Журнал изменений

  • Добавлено в версии 6.8.0

Параметры

apply_filters( 'acf/schema/format_value', $formatted_value, $value, $field_object, $field_type );
  • $formatted_value (mixed) Значение после стандартного форматирования
  • $value (mixed) Исходное необработанное значение поля
  • $field_object (array) Объект поля с настройками
  • $field_type (string) Имя типа поля

Возвращаемое значение

(mixed) Изменённое форматированное значение.

Пример

Этот пример гарантирует, что у цен всегда будет 2 знака после запятой.

/**
 * Форматировать цены с 2 знаками после запятой.
 *
 * @param mixed  $formatted_value Отформатированное значение.
 * @param mixed  $value           Исходное значение.
 * @param array  $field_object    Объект поля.
 * @param string $field_type      Тип поля.
 * @return mixed Изменённое значение.
 */
function my_acf_schema_format_prices( $formatted_value, $value, $field_object, $field_type ) {
    $property = $field_object['schema_property'] ?? '';

    if ( $property === 'Offer.price' || $property === 'price' ) {
        return number_format( (float) $formatted_value, 2, '.', '' );
    }

    return $formatted_value;
}
add_filter( 'acf/schema/format_value', 'my_acf_schema_format_prices', 10, 4 );

Этот пример преобразует обычные URL в корректные объекты ссылок.

/**
 * Преобразовать URL в объекты WebPage.
 *
 * @param mixed  $formatted_value Отформатированное значение.
 * @param mixed  $value           Исходное значение.
 * @param array  $field_object    Объект поля.
 * @param string $field_type      Тип поля.
 * @return mixed Изменённое значение.
 */
function my_acf_schema_format_urls( $formatted_value, $value, $field_object, $field_type ) {
    $property = $field_object['schema_property'] ?? '';

    // Преобразовать mainEntityOfPage в объект WebPage
    if ( $property === 'mainEntityOfPage' && is_string( $formatted_value ) ) {
        return array(
            '@type' => 'WebPage',
            '@id'   => $formatted_value,
        );
    }

    return $formatted_value;
}
add_filter( 'acf/schema/format_value', 'my_acf_schema_format_urls', 10, 4 );

Обновлено: 02.06.2026