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