¿Cómo obtener el valor de un campo de nodo?


9

En node.tpl.php, estoy tratando de obtener el valor bruto, pero el problema es que cuando uso render:

<?php print render($content['field_price']);?>

no solo devuelve el valor de field_image sino que formatea y genera la imagen completa.

Necesito una forma de obtener solo el valor bruto del campo. ¿Cómo puedo conseguir esto?

Respuestas:


7

Para obtener el valor real y no uno temático ...

Puede usar http://api.drupal.org/api/drupal/modules!field!field.module/function/field_get_items/7

 $my_field_items = field_get_items('node', $node, 'field_my_field');

O use el módulo Entity API y entity_metadata_wrapper

 $node_wrapper = entity_metadata_wrapper('node', $node);
 $field_val = $node_wrapper->field_test->value();

Tome un botín también en http://www.computerminds.co.uk/articles/rendering-drupal-7-fields-right-way


4

En una plantilla de nodo, para valores sin formato puede acceder al $nodeobjeto.

<?php print $node->field_price; ?>

Si necesita ver la estructura, puede hacerlo <?php print_r($node); ?>.

Además, si esto es para un tipo de contenido específico, debe usar una variación de node.tpl.php en lugar de node.tpl.php o, de lo contrario, intentará mostrar campos que no existen en otros tipos de contenido.


3

habilite el módulo Devel y en el uso de node- {content-type} .tpl.php

<?php print dsm($node); ?>

encima del código.

puedes ver todos los campos de $ node en formato legible

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.