acf/schema/schema_priority_types

Обзор

Фильтрует, какие типы Schema.org отображаются первыми в выпадающих списках.

Описание

Этот фильтр позволяет настроить, какие типы Schema.org выводятся в начале выпадающих списков выбора. Приоритетные типы показываются первыми для быстрого доступа к наиболее часто используемым типам.

Когда указан ID контекста группы полей, типы из связанных типов записей автоматически добавляются в начало списка, чтобы предлагать более контекстно-зависимые варианты.

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

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

Параметры

apply_filters( 'acf/schema/schema_priority_types', $priority_types, $context_id );
  • $priority_types (array) Массив имен приоритетных типов
  • $context_id (int) ID группы полей для контекста или 0

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

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

Пример

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

/**
 * Добавляет пользовательские приоритетные типы Schema.org.
 *
 * @param array $priority_types Массив имен приоритетных типов.
 * @param int   $context_id     ID группы полей или 0.
 * @return array Изменённые приоритетные типы.
 */
function my_acf_schema_priority_types( $priority_types, $context_id ) {
    // Добавляем наши часто используемые типы в начало
    array_unshift( $priority_types, 'SoftwareApplication', 'Course' );

    return $priority_types;
}
add_filter( 'acf/schema/schema_priority_types', 'my_acf_schema_priority_types', 10, 2 );

В этом примере приоритетные типы настраиваются в зависимости от контекста группы полей.

/**
 * Контекстно-зависимые приоритетные типы.
 *
 * @param array $priority_types Массив имен приоритетных типов.
 * @param int   $context_id     ID группы полей или 0.
 * @return array Изменённые приоритетные типы.
 */
function my_acf_schema_contextual_types( $priority_types, $context_id ) {
    if ( ! $context_id ) {
        return $priority_types;
    }

    $field_group = acf_get_field_group( $context_id );
    if ( ! $field_group ) {
        return $priority_types;
    }

    // Проверяем заголовок группы полей на наличие контекстных подсказок
    $title = strtolower( $field_group['title'] );

    if ( strpos( $title, 'recipe' ) !== false ) {
        array_unshift( $priority_types, 'Recipe', 'HowTo' );
    } elseif ( strpos( $title, 'product' ) !== false ) {
        array_unshift( $priority_types, 'Product', 'Offer' );
    }

    return array_unique( $priority_types );
}
add_filter( 'acf/schema/schema_priority_types', 'my_acf_schema_contextual_types', 10, 2 );

Обновлено: 02.06.2026