Хук предварительной обработки поля работает только при рендеринге поле. Как только вы начинаете извлекать значения из объекта поля (например, отдельные свойства или определенные дельты), вы больше не визуализируете само поле, поэтому не запускаете хук.
Я также не рекомендую извлекать и отображать данные таким образом, потому что вы теряете некоторые метаданные, которые поставляются с этими объектами (например, возможность кэширования, информацию о теме, информацию о форматировании, модификации из других модулей и т. д.). Ты мог бы:
- Создайте средство форматирования поля для этого типа поля и отображать только определенную дельту (путем переопределения
видЭлементы()
и добавляя только определенные дельты). Вы можете настроить дельту.
- Или комбинация
hook_field_formatter_ Third_Party_settings_form
и hook_preprocess_field
. Первый позволит вам сохранить конфигурацию в конфигурации отображения поля, а второй позволит вам выбрать эту конфигурацию и изменить выходные данные поля.
- Хороший пример этой комбинации (хотя и для другой цели) можно найти в Заборы модуль.
В обоих случаях вы можете сделать их настраиваемыми через администратора, а не жестко запрограммировать выбор дельты в шаблоне. Вы даже можете сделать так, чтобы вы могли полностью игнорировать оба, оставив поле, отображающее вывод по умолчанию.