acf/schema/output_format_choices — выбор формата вывода

Обзор

Фильтр доступных вариантов формата вывода для сочетания типа поля и свойства.

Описание

Этот фильтр позволяет изменить список доступных вариантов формата вывода при настройке сопоставления поля со свойством Schema.org. Форматы определяют, как значения поля преобразуются для вывода JSON-LD.

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

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

Параметры

apply_filters( 'acf/schema/output_format_choices', $choices, $field_type, $property );
  • $choices (array) Массив вариантов формата (ключ => метка)
  • $field_type (string) Тип поля ACF
  • $property (string) Имя свойства Schema.org

Возвращает

(array) Изменённый массив вариантов формата.

Пример

Этот пример добавляет пользовательский вариант формата.

/**
 * Добавить пользовательский вариант формата вывода.
 *
 * @param array  $choices    Варианты формата.
 * @param string $field_type Тип поля ACF.
 * @param string $property   Свойство Schema.org.
 * @return array Изменённые варианты.
 */
function my_acf_schema_add_format( $choices, $field_type, $property ) {
    if ( $field_type === 'number' && in_array( $property, array( 'price', 'Offer.price' ), true ) ) {
        $choices['currency'] = 'Валюта (с символом)';
    }

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

Этот пример удаляет варианты формата для определённых свойств.

/**
 * Ограничить варианты формата для свойств длительности.
 *
 * @param array  $choices    Варианты формата.
 * @param string $field_type Тип поля ACF.
 * @param string $property   Свойство Schema.org.
 * @return array Изменённые варианты.
 */
function my_acf_schema_duration_formats( $choices, $field_type, $property ) {
    $duration_properties = array( 'prepTime', 'cookTime', 'totalTime', 'duration' );

    if ( in_array( $property, $duration_properties, true ) ) {
        // Разрешать только формат длительности ISO 8601
        return array(
            'duration' => 'Длительность ISO 8601',
        );
    }

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

Обновлено: 02.06.2026