Come ottenere il valore di un campo nodo?


9

In node.tpl.php Sto cercando di ottenere il valore grezzo ma il problema è che quando uso render:

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

non restituisce solo il valore field_image ma formatta e restituisce l'intera immagine.

Ho bisogno di un modo per ottenere solo il valore grezzo del campo. Come posso raggiungere questo obiettivo?

Risposte:


7

Per ottenere il valore reale e non uno a tema ...

Puoi usare 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');

Oppure usa il modulo API Entity e entity_metadata_wrapper

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

Prendi un bottino anche su http://www.computerminds.co.uk/articles/rendering-drupal-7-fields-right-way


4

In un modello di nodo, per valori non elaborati è possibile accedere $nodeall'oggetto.

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

Se hai bisogno di vedere la struttura, puoi farlo <?php print_r($node); ?>.

Inoltre, se questo è per uno specifico tipo di contenuto, dovresti usare una variante di node.tpl.php invece di node.tpl.php stesso, altrimenti proverà a visualizzare campi inesistenti su altri tipi di contenuto.


3

abilita il modulo Devel e nell'uso del nodo {content-type} .tpl.php

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

in cima al codice.

puoi vedere tutti i campi $ node in formato leggibile

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.