Jak uzyskać wartość pola węzła?

9

W node.tpl.php próbuję uzyskać surową wartość, ale problem polega na tym, że kiedy używam renderowania:

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

nie tylko zwraca wartość field_image, ale formatuje i wysyła cały obraz.

Potrzebuję sposobu, aby uzyskać tylko surową wartość pola. Jak mogę to osiągnąć?

Yalamber
źródło

Odpowiedzi:

7

Aby uzyskać prawdziwą wartość, a nie tematyczną ...

Możesz użyć 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');

Lub użyj modułu Entity API i podmiot_metadanych_wrapper

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

Zdobądź łup również na stronie http://www.computerminds.co.uk/articles/rendering-drupal-7-fields-right-way

gagarine
źródło
4

W szablonie węzła dla surowych wartości można uzyskać dostęp do $nodeobiektu.

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

Jeśli chcesz zobaczyć strukturę, możesz to zrobić <?php print_r($node); ?>.

Ponadto, jeśli dotyczy to określonego typu zawartości, należy użyć odmiany node.tpl.php zamiast samego node.tpl.php, w przeciwnym razie spróbuje wyświetlić pola, które nie istnieją w innych typach treści.

Laxman13
źródło
3

włącz moduł Devel i użyj w węźle {content-type} .tpl.php

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

na górze kodu.

możesz zobaczyć wszystkie pola $ node w czytelnym formacie

Mohammad Ali Akbari
źródło