Получение меток полей из переменной $ node


8

Как я могу получить метки определенных полей в узле, в Drupal 7?

Поле, в котором я заинтересован, имеет следующую структуру:

    [field_text_question1] => Array (
      [und] => Array (
        [0] => Массив (
          [value] => Стажер по продажам
          [формат] => 
          [safe_value] => Стажер по продажам
        ) 
      )
    )

Ответы:


13

Лучший способ - использовать field_info_instance ($ entity_type, $ field_name, $ bundle_name) для получения информации о конкретном наборе поля. Метка поля содержится в массиве, возвращаемом из этой функции.

 $info = field_info_instance('node','field_name','content_type_name');
 print $info['label'];

Мне нужно использовать field_name, но с переводом сущности могу я? Я попробовал это, но это не работает
Waseeem Alfarra

1

Я полагаю, что вы смотрите внутрь $nodeпеременной. Это не доступно там. Внутри $nodeпеременной хранятся только значения полей, а не настройки полей (например, метка). Если вы хотите метку, посмотрите в $contentпеременную.

$contentпеременная доступна в MYTHEME_preprocess_node(&$variable)функции шаблона темы, node.tpl.phpа также, несколько других.

Если он недоступен, вы можете позвонить field_info_field($field_name)


0

Самый простой способ напечатать метку поля узла:

<?php print $content['field_your_field_name']['#title']; ?>

(Я обнаружил это после множества массивов print_r и объектов Drupal! Если это так просто, почему нигде ничего не объясняется, или почему так скрыто, что я не нашел хитрости? И прошло много времени от вопрос к этому ответу ...)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.