跳转到主要内容

acf/schema/output_format_choices

Filter available output format choices for a field type and property combination.

Description

This filter allows you to modify the list of output format choices available when configuring a field’s Schema.org property mapping. Formats determine how field values are transformed for JSON-LD output.

Changelog

  • Added in version 6.8.0

Parameters

apply_filters( 'acf/schema/output_format_choices', $choices, $field_type, $property );
  • $choices (array) Array of format choices (key => label)
  • $field_type (string) The ACF field type
  • $property (string) The Schema.org property name

Return

(array) The modified format choices array.

Example

This example adds a custom format option.

/**
 * Add custom output format choice.
 *
 * @param array  $choices    Format choices.
 * @param string $field_type The ACF field type.
 * @param string $property   The Schema.org property.
 * @return array Modified choices.
 */
function my_acf_schema_add_format( $choices, $field_type, $property ) {
    if ( $field_type === 'number' && in_array( $property, array( 'price', 'Offer.price' ), true ) ) {
        $choices['currency'] = 'Currency (with symbol)';
    }

    return $choices;
}
add_filter( 'acf/schema/output_format_choices', 'my_acf_schema_add_format', 10, 3 );

This example removes format options for specific properties.

/**
 * Limit format choices for duration properties.
 *
 * @param array  $choices    Format choices.
 * @param string $field_type The ACF field type.
 * @param string $property   The Schema.org property.
 * @return array Modified choices.
 */
function my_acf_schema_duration_formats( $choices, $field_type, $property ) {
    $duration_properties = array( 'prepTime', 'cookTime', 'totalTime', 'duration' );

    if ( in_array( $property, $duration_properties, true ) ) {
        // Only allow ISO 8601 duration format
        return array(
            'duration' => 'ISO 8601 Duration',
        );
    }

    return $choices;
}
add_filter( 'acf/schema/output_format_choices', 'my_acf_schema_duration_formats', 10, 3 );