acf/schema/format_value/pre/type={field_type}

Обзор

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

Описание

Этот фильтр является специализированной для типа поля версией acf/schema/format_value/pre. Он позволяет предварительно обрабатывать значения перед форматированием ACF по умолчанию, но только для определённого типа поля.

Динамическая часть имени хука, {field_type}, обозначает тип поля ACF.

История изменений

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

Параметры

apply_filters( 'acf/schema/format_value/pre/type={field_type}', $pre_value, $value, $field_object );
  • $pre_value (mixed) Предварительно отформатированное значение из предыдущих фильтров или null
  • $value (mixed) Исходное значение поля
  • $field_object (array) Объект поля с настройками

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

(mixed|null) Предварительно отформатированное значение или null, чтобы использовать форматирование по умолчанию.

Пример

В этом примере показано пользовательское форматирование данных пользователя.

/**
 * Пользовательское форматирование поля пользователя для схемы Person.
 *
 * @param mixed $pre_value    Предварительно отформатированное значение или null.
 * @param mixed $value        Исходное значение (ID пользователя или массив).
 * @param array $field_object Объект поля.
 * @return mixed Предварительно отформатированное значение или null.
 */
function my_acf_schema_format_user( $pre_value, $value, $field_object ) {
    if ( ! $value ) {
        return $pre_value;
    }

    $user_id = is_array( $value ) ? $value['ID'] : $value;
    $user    = get_userdata( $user_id );

    if ( ! $user ) {
        return $pre_value;
    }

    return array(
        '@type'  => 'Person',
        'name'   => $user->display_name,
        'url'    => get_author_posts_url( $user_id ),
        'email'  => $user->user_email,
        'sameAs' => array(
            get_user_meta( $user_id, 'twitter', true ),
            get_user_meta( $user_id, 'linkedin', true ),
        ),
    );
}
add_filter( 'acf/schema/format_value/pre/type=user', 'my_acf_schema_format_user', 10, 3 );

Обновлено: 30.09.2026