acf/schema/format_value/name={field_name}
Filter formatted values for a specific field name.
Description
This filter is a field name specific version of acf/schema/format_value. It allows you to modify formatted values only for fields with a specific name.
The dynamic portion of the hook name, {field_name}, refers to the ACF field name.
Changelog
- Added in version 6.8.0
Parameters
apply_filters( 'acf/schema/format_value/name={field_name}', $formatted_value, $value, $field_object );
$formatted_value(mixed) The value after default formatting$value(mixed) The original raw field value$field_object(array) The field object with settings
Return
(mixed) The modified formatted value.
Example
This example formats a price field with currency.
/**
* Format price field with currency symbol.
*
* @param mixed $formatted_value The formatted value.
* @param mixed $value The raw value.
* @param array $field_object The field object.
* @return mixed Modified value.
*/
function my_acf_schema_format_price( $formatted_value, $value, $field_object ) {
// Ensure 2 decimal places
return number_format( (float) $formatted_value, 2, '.', '' );
}
add_filter( 'acf/schema/format_value/name=price', 'my_acf_schema_format_price', 10, 3 );
This example converts duration minutes to ISO 8601 format.
/**
* Convert duration field to ISO 8601.
*
* @param mixed $formatted_value The formatted value.
* @param mixed $value The raw value (minutes).
* @param array $field_object The field object.
* @return string ISO 8601 duration.
*/
function my_acf_schema_format_duration( $formatted_value, $value, $field_object ) {
$minutes = (int) $value;
$hours = floor( $minutes / 60 );
$mins = $minutes % 60;
if ( $hours > 0 ) {
return sprintf( 'PT%dH%dM', $hours, $mins );
}
return sprintf( 'PT%dM', $mins );
}
add_filter( 'acf/schema/format_value/name=cooking_time', 'my_acf_schema_format_duration', 10, 3 );
add_filter( 'acf/schema/format_value/name=prep_time', 'my_acf_schema_format_duration', 10, 3 );
这篇文档对你有帮助吗?
谢谢你的反馈!