Obteniendo etiquetas de campo de la variable $ node

8

¿Cómo puedo obtener las etiquetas de campos específicos dentro de un nodo, en Drupal 7?

El campo que me interesa tiene la siguiente estructura:

    [field_text_question1] => Matriz (
      [und] => Matriz (
        [0] => Matriz (
          [valor] => Pasante de ventas
          [formato] => 
          [safe_value] => Pasante de ventas
        ) 
      )
    )
bertsisterwanda
fuente

Respuestas:

13

La mejor manera es usar field_info_instance ($ entity_type, $ field_name, $ bundle_name) para obtener información sobre la instancia específica de un campo. La etiqueta del campo está contenida en la matriz devuelta por esa función.

 $info = field_info_instance('node','field_name','content_type_name');
 print $info['label'];
Sepehr
fuente
necesito usar el field_name pero con la traducción de entidades ¿puedo? Lo intenté pero no funciona
Waseeem Alfarra
1

Creo que estás mirando dentro de la $nodevariable. No está disponible allí. Solo los valores de campo se almacenan dentro de la $nodevariable, no la configuración de campo (como la etiqueta). Si desea que la etiqueta busque en la $contentvariable.

$contentLa variable está disponible en la MYTHEME_preprocess_node(&$variable)función de plantilla de tema node.tpl.php, así como en algunas otras.

Si no está disponible, puede llamar field_info_field($field_name)

iStryker
fuente
0

La forma más fácil de imprimir la etiqueta de campo de un nodo es:

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

(¡Lo descubrí después de muchas matrices y objetos print_r de Drupal! Si es tan fácil, ¿por qué no se explica en ningún lado, o por qué está tan oculto que no he encontrado el truco? Y pasé mucho tiempo sin pregunta a esta respuesta ...)

Programador catalán
fuente