Как получить значение поля узла?


9

В node.tpl.php я пытаюсь получить необработанное значение, но проблема в том, что когда я использую рендер:

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

он не только возвращает значение field_image, но и форматирует и выводит все изображение.

Мне нужен способ получить только необработанное значение поля. Как мне этого добиться?

Ответы:


7

Чтобы получить реальную ценность, а не тематическую ...

Вы можете использовать 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');

Или используйте модуль Entity API и entity_metadata_wrapper

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

Возьмите лут также на http://www.computerminds.co.uk/articles/rendering-drupal-7-fields-right-way


4

В шаблоне узла для необработанных значений вы можете получить доступ к $nodeобъекту.

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

Если вам нужно увидеть структуру, можете сделать <?php print_r($node); ?>.

Кроме того, если это для определенного типа контента, вы должны использовать вариант node.tpl.php вместо самого node.tpl.php, иначе он попытается отобразить поля, которые не существуют в других типах контента.


3

включить модуль Devel и использовать node- {content-type} .tpl.php

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

поверх кода.

вы можете увидеть все поля $ node в удобочитаемом формате

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