acf/schema/disable_output

Обзор

Отключает вывод JSON-LD для конкретного набора данных.

Описание

Этот фильтр позволяет условно предотвращать вывод JSON-LD в зависимости от данных, которые будут отрендерены. В отличие от acf/schema/enabled_post_types, который управляет выводом на уровне типа записи, этот фильтр срабатывает после обработки данных и позволяет проверить фактические данные JSON-LD, прежде чем решить, выводить их или нет.

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

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

Параметры

apply_filters( 'acf/schema/disable_output', $disable, $jsonld_data );
  • $disable (bool) Отключать ли вывод. Значение по умолчанию: false
  • $jsonld_data (array) Полный массив данных JSON-LD, который будет выведен

Возврат

(bool) Нужно ли отключить вывод JSON-LD для этих данных.

Пример

Этот пример отключает вывод, когда не сопоставлено ни одного пользовательского поля.

/**
 * Отключает JSON-LD, если существуют только автоматически сгенерированные данные.
 *
 * @param bool  $disable     Нужно ли отключать вывод.
 * @param array $jsonld_data Массив данных JSON-LD.
 * @return bool Нужно ли отключать вывод.
 */
function my_acf_schema_require_mapped_fields( $disable, $jsonld_data ) {
    // Проверяем, есть ли у нас только автоматически сгенерированные свойства
    $auto_properties = array( '@context', '@type', 'name', 'url', 'datePublished', 'dateModified', 'author', 'image' );

    $custom_properties = array_diff( array_keys( $jsonld_data ), $auto_properties );

    if ( empty( $custom_properties ) ) {
        return true; // Отключить вывод
    }

    return $disable;
}
add_filter( 'acf/schema/disable_output', 'my_acf_schema_require_mapped_fields', 10, 2 );

Этот пример отключает вывод для определённых типов схемы.

/**
 * Отключает JSON-LD для типа схемы Person.
 *
 * @param bool  $disable     Нужно ли отключать вывод.
 * @param array $jsonld_data Массив данных JSON-LD.
 * @return bool Нужно ли отключать вывод.
 */
function my_acf_schema_disable_person( $disable, $jsonld_data ) {
    if ( isset( $jsonld_data['@type'] ) && $jsonld_data['@type'] === 'Person' ) {
        return true;
    }
    return $disable;
}
add_filter( 'acf/schema/disable_output', 'my_acf_schema_disable_person', 10, 2 );

Обновлено: 02.06.2026